axis2和已有web项目集成
来源:互联网 发布:论坛抢楼软件 编辑:程序博客网 时间:2024/05/19 16:22
建立服务端
最近项目需要开发web service,找了一下资料,打算用axis2开发,但是网上很难找到一个完整demo。
所以整理总结一下,希望多大家有帮助!
有一个最简单的方法就是把axis2.war中的内容作为Web Project的基础, 来进行开发.
不过为了更清楚的了解如何在一个已有的Web Project中嵌入axis2,那就手动来配置。大致分如下几个步骤:
一、新建Web Project,名为“WebServiceDemo”
二、下载axis2-1.5-war.zip包(本来想发附件也发出来,发现csdn无法挂附件,只有麻烦各位再到其他地方下载了,当然也可以问我要,加QQ470312712),
解压缩
将axis2/WEB-INF/lib里的jar包拷贝到WebServiceDemo/WebRoot/WEB-INF/lib/
将axis2.war/axis2-web拷贝至WebServiceDemo/WebRoot/axis2-web/(这一步如果不想集成axis2的控制信息,可不需要)
三、配置axis2 servlet
打开WebServiceDemo/WebRoot/WEB-INF/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>
四、写一个简单的web服务类
package com.ws;public class MyService {public String getName(String id){System.out.println("-------------"+id+"--------");return "pj";}}
五、配置Web Service.
由于axis2已嵌入到WebServiceDemo项目中,所以web service就不用打包成aar,而是直接在/WEB-INF目录下创建相应的文件夹和services.xml,
六、services.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- 接口服务类 -->
<serviceGroup>
<service name="SampleService">
<description>
This service is common webService.
</description>
<!-- 这里需要配置提供的服务类名包括类的路径-->
<parameter name="ServiceClass">com.ws.MyService
</parameter>
<!--以下标签的配置功能是说明此服务是有输入和输出功能-->
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>
</service>
</serviceGroup>
到这里服务端已经配置完成!很简单吧!然后启动tomcat,访问地址粗线wsdl文件,说明配置成功!
在浏览器中访问http://localhost:8080/ws/services/SampleService?wsdl可以查看到该Web服务的描述文件说明发布成功!
建立客户端
我查看了网上总结的,有多种方式生成客户端,我采用的是axis2对myeclipse的插件生成,个人觉得比较简单!无需配置环境变量!
一、先下载axis2-eclipse-codegen-wizard.jar和axis2-eclipse-service-archiver-wizard.jar
然后把上述两个文件解压出来,然后再复制backport-util-concurrent-3.1.jar(需要在单独网上下载,axis2没自带)和geronimo-stax-api_1.0_spec-1.0.1.jar
到axis2-eclipse-codegen-wizard(解压出来的文件)里面的lib里面!
然后修改axis2-eclipse-codegen-wizard里面的plugin.xml文件,在节点runtime下添加如下内容
<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-eclipse-codegen-wizard和axis2-eclipse-service-archiver-wizard复制到myeclipse(我用的是myeclipse8.6)根目录下的dropins文件夹下
(特别要注意,最后修改后在复制到myeclipse的dropins文件夹下,要是已经是复制进去才修改,请剪切出来,然后启动myeclipse关掉,在复制进去)
三、 打开myeclipse,新建一个项目,在窗体中看到如下:
看到axis2下的连个选项,说明安装插件成功!
四、生成客户端,新建醒目,选择以上两个选项中的axis2 code generator,然后下一步出现
选第一个,代表的意思是用wsdl文件生成客户端!点击下一步出现
五、 输入wsdl文件路径,该文件路径可以是本地的文件,也可以是网络上的地址(如果是网络行的,必须要联网哦)点击下一步
六、如果上一步的wsdl没错,那么这一步默认就行了
七、选要输出到的项目,你可以先建好一个web project项目,然后选择该项目,(注意,选择到项目名称即可)然后点击完成。(记得要打上add the axis2 codeger...这个复选框)
八、生成的项目是不是好多小红叉啊,没关系,先把axis2的包添加到claspath下,添加jar都懂吧,这里就不啰嗦!
添加完后是不是还有小红叉啊,不要紧张,这个是这个插件的一个小bug,解决方案如下:
点击小红叉的地方,出现add unimplemented methods 实现方法就可以,是不是发现还有红叉啊,别那么紧张嘛,下载axis2-adb-1.4.1.jar添加到classpath即可
编写客户端如下
SayHelloStub sayHelloStub=new SayHelloStub();
SayHelloStub.SayHelloMethod sayHelloMethod=new SayHelloStub.SayHelloMethod();
//传递的参数
sayHelloMethod.setName("pjn");
//调用sayHelloMethod方法
System.out.println(sayHelloStub.sayHelloMethod(sayHelloMethod).get_return());
SayHelloStub.AddStudnet addStudnet=new SayHelloStub.AddStudnet();
Student student=new Student();
student.setName("pangjian");
addStudnet.setStudent(student);
System.out.println(sayHelloStub.addStudnet(addStudnet).get_return());
完成!如有问题可以联系我!
- Axis2和已有web项目集成
- axis2和已有web项目集成
- axis2和已有web项目集成
- Axis2和已有web项目集成 .
- Axis2和已有web项目集成
- axis2和已有web项目集成
- axis2和已有web项目集成
- Eclipse已有web工程集成 Axis2
- axis2 webservice集成到已有的web工程
- 已有Web项目添加Maven支持
- 关于Idea导入已有web项目
- 阿里weex研究iOS(二)已有项目集成
- 已有maven+spring+spring mvc项目,集成dubbo
- axis2发布web项目开发webservice和接口调用
- axis2与web项目结合
- java web项目使用axis2
- Axis2与Web项目整合
- Web工程集成Axis2发布WebService
- Linux 文件权限
- VS2008中 ATL CLR MFC Win32 区别
- 图形的设计和HTML和的CSS
- Android 其他
- ASCII 码表
- axis2和已有web项目集成
- http://support.microsoft.com/kb/246230#top
- ios 内购 “不自动更新”类订阅 购买指南(In-App Purchases: Non-Renewing Subscription Tutorial)
- 数据库连接池
- 行动下移篇之——aspnetpager分页控件
- django项目的发布
- myeclipse优化方案 myeclipse 10 优化
- 十四个Uri-Intent相关的
- linux lsof命令详解