一,开发服务器端
准备工作
新建两个Dynamic web project :
其中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
之后每一步看图:
(这里我们的程序没用其他类库,所以直接下一步)
之后会在本项目下看到my_service.aar(选择本项目F5刷新)
然后把my_service.aar 复制到tomcat目录下apache-tomcat-7.0.37\\webapps\axis2\WEB-INF\services\里
启动tomcat,浏览器访问:
http://localhost:8080/axis2/services/HelloWorldService?wsdl
见到如上界面就成功了。
二,生成客户端(使用webServiceClient项目)
1, 右键项目空白处-New—>Other..—>Axis2 Wizards—>Axis2 Code Generator
之后每一步见下图:
(这里的地址是之前网络访问成功的地址)
(这里默认)
到这里结束,会多次很多类文件:
但是你会发现你的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,输出:
至此,第一个webService完成!
注:版本不同会有些许差异,我在学习时参考的网上教程很多都走不下去,后来自己总结修改后才成功。
比如:网络上参考的一个版本SayHello是HelloWorldServiceStub的内部类,而我用的这个版本不是。
注大家成功。
转载于:https://www.cnblogs.com/Jason_Chan/archive/2013/04/09/3010623.html