axis2发布web项目开发webservice和接口调用
来源:互联网 发布:网络教育几月发毕业证 编辑:程序博客网 时间:2024/05/22 06:43
网上查了很久的axis2,但是和本人实际接口的使用情况严重不符,我通过网上搜寻终于完成axis2与已有项目完美集成,并生成客户端调用代码直接使用。现将经验总结如下,自己存的容易丢失,所以总结在网上,也方便大家参考,以后自己在用到时不至于到处找。
1、将axis2.war解压开,将conf,lib,modules,service四个文件夹复制到已有项目的WEB-INF下。
2、开发接口类
public String addRemindTOSendMsg(String nid,String mobile,String validitytime,String content){
String rMsg="fail";
System.out.println("调用进来了:nid="+nid+" \n mobile="+mobile
+" \n validitytime="+validitytime+" \n content="+content);
HInterfaceService hf=new HInterfaceService();//接口处理类
rMsg=hf.addRemindTOSendMsg(nid,mobile,validitytime,content);//调用接口处理插入文件
return rMsg;
}
3、在services文件下新建一个文件夹(任意取名),再新建META-INF文件夹,最后再新增services.xml,接口信息就写在这里面。
具体路径:WEB-INF/services/myservice/META-INF/services.xml。
另外,WEB-INF/services/myservice/META-INF/此目录下还必须在建立一个文件:ServiceData.xml。。否则程序运行时有可能出错。路径为:
WEB-INF/services/myservice/META-INF/ServiceData.xml。
ServiceData.xml文件内容为:
<?xmlversion="1.0"encoding="UTF-8"?>
<!--此文件必须存在,否则执行异常 -->
<ServiceData>
</ServiceData>
4、编写services.xml信息如下(本人创建了多个接口,多个接口也就是开发是接口类多个方法而已):
<?xml version="1.0" encoding="UTF-8"?>
<service name="HttxService">
<description>
提醒接口调用服务(多种方式循环提醒)
</description>
<parameter name="ServiceClass">
com.besys.httx.ws.HcallInterface --此处是接口类路径
</parameter>
<operation name="addRemind"> --接口里面方法,
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</operation>
<operation name="addRemindTOSendMsg">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</operation>
<operation name="closeRemind">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</operation>
</service>
5、将如下代码添加到web.xml中
<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>
org.apache.axis2.transport.http.AxisServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
6.发布项目,然后在地址栏上输入http://localhost:8080/MyAxis/services/HttxService?wsdl,就能看到发布的项目了哦!!
7、编写客户端程序
Axis2提供了一个wsdl2java.bat命令可以根据WSDL文件自动产生调用WebService的代码。
wsdl2java.bat命令可以在<Axis2安装目录>/bin目录中找到。
在使用wsdl2java.bat命令之前需要设置AXIS2_HOME环境变量,该变量值是<Axis2安装目录>。如果不设置,则将cmd命令窗口路径运行到axis2/bin目录下在执行命令语句。
在Windows控制台输出如下的命令行来生成调用WebService的代码:
%AXIS2_HOME%\bin\wsdl2java -uri http://localhost:8080/MyAxis/services/HttxService?wsdl
-p client -s -o stub
其中-url参数指定了wsdl文件的路径,可以是本地路径,也可以是网络路径。
-p参数指定了生成的Java类的包名,-o参数指定了生成的一系列文件保存的根目录。
在执行完上面的命令后,就会发现在当前目录下多了个stub目录,
在stub/src/client目录可以找到一个 *Stub.java文件,
这个文件可以放到项目里面使用了;
以上主要是网友提供的
本人测试调用代码:
本人接口测试的执行操作,先切换到axis2/bin目录下然后输入命令执行语句
wsdl2java -uri http://localhost:9090/besys_httx/services/HttxService?wsdl -p client -s -o stub
执行后文件生成:
生成客户端文件后,将生成的文件复制到自己项目下,使用代码直接调用与返回
HttxServiceStub stub=new HttxServiceStub();//生成的客户端调用文件
//发短信
AddRemindTOSendMsg uf=new AddRemindTOSendMsg();//需调用的接口方法,直接进行实例化
//方法参数 为方法中参数传值
uf.setNid("test005");
uf.setMobile("18088888888");
uf.setValiditytime("5");
uf.setContent("985255fsdfsf ");
//调用接口
AddRemindTOSendMsgResponse res=stub.addRemindTOSendMsg(uf);
//获取返回值,本人的接口返回的是一个字符串,如果返回一个对象,则可以用Response获取对象返回结果属性
String result=res.get_return();
System.out.println("------调用结果:"+result);
特别鸣谢:
网友:wangronaldo的分享:http://wangronaldo.iteye.com/blog/1456441
参考的还有其他的人的分享资料,这里不再贴出。
整理的比较乱,能看懂关键点就行了。
- axis2发布web项目开发webservice和接口调用
- Java Axis2发布及调用webservice接口
- axis2 发布 webservice 和 java调用webservice
- axis2 webservice 发布、调用与项目集成
- Axis2 WebService的发布和调用说明
- 用AXIS2发布WebService和客户端调用
- Axis2 WebService的发布和调用说明
- Axis2 调用Webservice 接口
- axis2 开发webservice 接口
- 使用axis2发布webservice接口
- Eclipse发布WebService和调用WebService接口
- Eclipse发布WebService和调用WebService接口
- 项目中利用axis2+spring发布webservice与客户端调用
- Axis2 WebService(配置、发布、调用)
- Axis2 WebService(配置、发布、调用)
- Axis2 WebService(配置、发布、调用)
- Axis2 WebService(配置、发布、调用)
- Axis2 WebService(配置、发布、调用)
- C/C++——vector的基本操作总结
- oracle-PL/SQL基本语法
- 高精度四则运算模板
- Linux进程调度策略的发展和演变--Linux进程的管理与调度(十六)
- ios method swizzling
- axis2发布web项目开发webservice和接口调用
- Android中“android:elevation”设置阴影,在真机上没有效果的问题
- 警告:肆意侵害黑马程序员权益的友商们看过来
- 谓词的使用
- Three.js讲解以及WEBGL实例
- 02_02_Linux操作系统及常用命令
- 第四十讲 项目4 换硬币
- 日期处理util
- 调试器工作原理(2):实现断点