在Eclipse 中 使用axis2开发第一个webService

一,开发服务器端

准备工作

新建两个Dynamic web project :

DU72G)6{V}`[YD4QENM{{RO

其中webserviceService项目为服务器端项目,另一个为客户端项目。

(另外我修改了eclipse对tomcat的项目发布目录时的重定向,参见我的另一篇blog)

1, 服务器端 代码(处理服务器端项目)

借用网络上的Hello例子

HelloServer文件(右键Java Resources下的src,选择New->Class,填写包名:org.web.service   类名:HelloWordService):

package org.web.service;

public class HelloWorldService { 
    public String sayHello(String name){ 
        return "Hello," + name; 
    } 
} 

(简单吧)

2, 然后 生成 WSDL文件

在本项目下面空白处右键-->New—>Other..-->Axis2 Wizards—>Axis2 Service Archiver

之后每一步看图:

image

image

image

image

(这里我们的程序没用其他类库,所以直接下一步)

image

image

image

之后会在本项目下看到my_service.aar(选择本项目F5刷新)

image

然后把my_service.aar 复制到tomcat目录下apache-tomcat-7.0.37\\webapps\axis2\WEB-INF\services\里

启动tomcat,浏览器访问:http://localhost:8080/axis2/services/HelloWorldService?wsdl

image

见到如上界面就成功了。

二,生成客户端(使用webServiceClient项目)

1, 右键项目空白处-New—>Other..—>Axis2 Wizards—>Axis2 Code Generator

image

之后每一步见下图:

image

image

(这里的地址是之前网络访问成功的地址)

image

(这里默认)

image

到这里结束,会多次很多类文件:

image

但是你会发现你的webServiceClient项目代码很多错误,这是因为没把关联包加进来

复制 axis2-1.6.2\lib\里所有文件到webServiceClient项目的WebContent\WEB-INF\lib\下。这样错误就没了。

三,调用webService代码

在webServiceClient项目里换个包新建类:

package org.web.client;

import java.rmi.RemoteException; 
import org.web.service.*;

public class HelloWorldClient {

    /** 
     * @param args 
     */ 
    public static void main(String[] args) throws RemoteException{ 
        // TODO Auto-generated method stub 
        String target = "http://localhost:8080/axis2/services/HelloWorldService"; 
        HelloWorldServiceStub stub = new HelloWorldServiceStub(target); 
        // sayHello 为webService提供参数 
        SayHello sayHello = new SayHello(); 
        sayHello.setName("icePine"); 
        SayHelloResponse eur = stub.sayHello(sayHello); 
        String returnVal = eur.get_return(); 
        System.out.println(returnVal); 
         
    }

} 

运行此代码文件:此文件上右键Run As->Java Application,输出:

image

至此,第一个webService完成!

注:版本不同会有些许差异,我在学习时参考的网上教程很多都走不下去,后来自己总结修改后才成功。

比如:网络上参考的一个版本SayHello是HelloWorldServiceStub的内部类,而我用的这个版本不是。

注大家成功。

转载于:https://www.cnblogs.com/Jason_Chan/archive/2013/04/09/3010623.html

猜你喜欢

转载自blog.csdn.net/weixin_33878457/article/details/94616828