webservice demo
使用axis2进行webservice编程也是比较容易的,不过我在过程中还是碰到了些问题,对于该问题大家进行交流。
一、下载最新的axis2包axis2-1.6.2-bin.zip
下载eclipse开发插件工具axis2-eclipse-codegen-wizard.zip和axis2-eclipse-service-archiver-wizard.zip解压,将解压后的文件axis2-eclipse-codegen-wizard和axis2-eclipse-service-archiver-wizard放入Myeclipse的安装目录plugins下面。启动Myeclipse。从名称可以看到
表示成功添加,第一个表示代码生成器,第二个为服务打包向导。
当不成功时候可能差2个jar包
D:\Program Files\MyEclipse 6.5\myeclipse\eclipse\plugins\Axis2_Codegen_Wizard_1.3.0
在plugin.xml该文件中加入
</library>
<library name="lib/geronimo-stax-api_1.0_spec-1.0.1.jar">
<export name="*"/>
</library>
<library name="lib/backport-util-concurrent-3.1.jar">
<export name="*"/>
</library>
<library name="lib/geronimo-stax-api_1.0_spec-1.0.1.jar">
<export name="*"/>
</library>
<library name="lib/backport-util-concurrent-3.1.jar">
<export name="*"/>
</library>
在axis2找到这两个jar放入该文件夹中lib中,重启myeclipse就ok。
backport-util-concurrent-3.1.jar包好像在1.4.1这个版本中有。
二、新建web工程,将axis2的lib包导入该工程lib包中。
package com.axis2.demo;
public class HelloaxisServer {
public String sayHello(String name){
return "Hello axis2, " + name + "!";
}
public String sayHello(String name){
return "Hello axis2, " + name + "!";
}
}
三、wsdl生成和发布
利用我们刚刚新增的axis2插件 code Generator进行。更具提示选项先用java代码生成wsdl文件,第二部找到需要生成的代码classes路径。
最后为wsdl文件生成路径。操作成功后检查wsdl文件是否生成。
在使用新增的axis2插件 Service Archiver 进行打包。首先进入找到打包的classes路径,后面直接跳过,在最后填写你的服务名喝类全路径名,选择发布所在方法如sayHello
最后为打包路径地址,一般为WEB-INF下。
发布成功后启动tomcat或其他服务器。
测试成功!
相关代码测试
- RPCServiceClient serviceClient = new RPCServiceClient();
- Options options = serviceClient.getOptions();
- EndpointReference targetEPR = new EndpointReference("http://localhost:8888/webserviceaxis2/services/HelloaxisServer?wsdl");
- options.setTo(targetEPR);
- QName opAddEntry = new QName(http://xxx.xxx.xxx,"sayHello");
- Object[] opAddEntryArgs = new Object[] {"你好" };
- Class[] classes = new Class[] { String.class };
- System.out.println(serviceClient.invokeBlocking(opAddEntry,opAddEntryArgs, classes)[0]);