如何使用Axis2与Eclipse精通java web整合开发来开发Web Service

&>&&>&&>&&>&myeclipse8.5使用axis2插件开发webservice服务并调用--操作步骤图解
myeclipse8.5使用axis2插件开发webservice服务并调用--操作步骤图解
上传大小:293KB
使用myeclipse8.5安装axis2插件,工程主要是通过server端类生成服务,生成客户端。
1、使用服务端类com.Hello.java,com.Other.java生成wsdl、aar文件【aar文件通过axis2插件的Axis2 service archiver生成】【wsdl文件通过axis2插件的Axis2 code generator中的&(服务端)代码生成wsdl&来生成】,
将aar文件放入tomcat/webapps/axis2/WEB-INF/services目录下(此目录是tomcat/webapps/axis2.war生成的),启动tomcat,输入http://127.0.0.1:8080/axis2/services/listServices,可以看到所有发布的服务列表:http://127.0.0.1:8080/axis2/services/HelloService和OtherService服务。
2、使用wsdl生成客户端HelloStub.java、OtherStub.java【通过axis2插件的Axis2 code generator生成】
3、测试类或者jsp页面,可以通过2中的客户端类来调用服务
HelloStub helloStub=new HelloStub(&http://127.0.0.1:8080/axis2/services/HelloService&);
Helloworld helloworld=new Helloworld();
helloworld.setName(&zgx---&);
HelloworldResponse resp= helloStub.helloworld(helloworld);
System.out.println(resp.get_return());...展开收缩
综合评分:4.1(83位用户评分)
所需积分:4
下载次数:261
审核通过送C币
创建者:cpongo1
创建者:f_feng3
创建者:f_feng3
课程推荐相关知识库
上传者其他资源上传者专辑
开发技术热门标签
VIP会员动态
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
android服务器底层网络模块的设计方法
所需积分:0
剩余积分:720
您当前C币:0
可兑换下载积分:0
兑换下载分:
兑换失败,您当前C币不够,请先充值C币
消耗C币:0
你当前的下载分为234。
myeclipse8.5使用axis2插件开发webservice服务并调用--操作步骤图解
会员到期时间:剩余下载次数:
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:在自己的项目中利用axis2+spring发布webservice与客户端调用 - 推酷
在自己的项目中利用axis2+spring发布webservice与客户端调用
axis2-1.6.2+spring3.1.4
发布 webservice 客户端调用总结
一、下载 axis2-1.6.2
下载地址: http://axis.apache.org/axis2/java/core/download.cgi ,自己根据情况确定下载,本人下载
二、 spring3.1.4 下载
这个根据自己项目需要下载对应的版本,这里就不说明。
三、创建整合工程并发布测试
、创建工程名为 axis
、导入需要的 axis 和 spring 的 Jar
&&&&&& axis
的 Jar 包 ( 相对较精简的 Jar 包,可能其他情况还需要用别的 jar, 下面的 jar 足以发布 webservice ,可能还可以精简 )
客户端测试必须的 jar ,可能还需要其他包
& httpcore-4.0.jar
& commons-httpclient-3.1.jar
与 spring 整合的 jar 包:
&&& axis2-spring-1.6.2.jar
&&& axis-xmlbeans-1.6.2.har
不知道是否有用
、编写普通 Java 类
& LessonAction.java &
代码如下:
&&& &&& public
LessonAction {
&&& &&& &&&
&&&&&& &&& &&&
&&& &&& &&& }
、编写 spring 的配置文件
applicationContext.xml &&
代码如下:
& beans xmlns = &http://www.springframework.org/schema/beans&
xmlns:xsi = &http://www.w3.org/2001/XMLSchema-instance&
xmlns:context = &http://www.springframework.org/schema/context&
xmlns:aop = &http://www.springframework.org/schema/aop&
xmlns:tx = &http://www.springframework.org/schema/tx&
xsi:schemaLocation = &http://www.springframework.org/schema/beans
&&&&&&&&&&&&&&&&&&&&&&&& http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
&&&&&&&&&&&&&&&&&&&&&&&& http://www.springframework.org/schema/context
&&&&&&&&&&&&&&&&&&&&&&&& http://www.springframework.org/schema/context/spring-context-3.0.xsd
&&&&&&&&&&&&&&&&&&&&&&&& http://www.springframework.org/schema/tx
&&&&&&&&&&&&&&&&&&&&&&&& http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
&&&&&&&&&&&&&&&&&&&&&&&& http://www.springframework.org/schema/aop
&&&&&&&&&&&&&&&&&&&&&&&& http://www.springframework.org/schema/aop/spring-aop-3.0.xsd&
&!-- 如果没有配置对应的 bean ,运行则报错, Caused by:
org.apache.axis2.deployment.DeploymentException
: The following error occurred during schema generation: No bean named 'lessonAction' is defined &
services.xml 需要用到这里配置的 bean
& bean id = &lessonAction& class = &com.lcb.axis.service.LessonAction& & &/ bean &
&/ beans &
、在 WEB-INF 下创建 services 文件夹,,名字一定是 services ,其他不能识别,在 services 一定要再创建一个文件夹(名字顺便,例如: MyService ),在 MyService 下创建一个文件夹,名字一定是 META-INF ,在 META-INF 下创建 services.xml 文件,这个名字也是不变的。最后路径是 WEB-INF/services/MyService/META-INF/services.xml services.xml 代码如下:
&!-- 访问地址中 的访问那个 webservice 的名字 --&
& service name = &LessonAction& &
& description & Spring aware &/ description &
通过ServiceObjectSupplier参数指定SpringServletContextObjectSupplier类来获得Spring的ApplicationContext对象
& parameter name = &ServiceObjectSupplier& &
org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier
&/ parameter &
配置在 applicationContext 中配置的 bean,, 这里的值域 bean 中的 id 事一样的,否则就报错找不到 bean 错 --&
& parameter name = &SpringBeanName& & lessonAction &/ parameter &
& messageReceivers &
&&&&&& &!--
配置没有返回值的方法 lessonAction 的第一个方法 --&
&&& &&& & messageReceiver mep =
&http://www.w3.org/2004/08/wsdl/in-out& &
&&&&&&&&&&
class = &org.apache.axis2.rpc.receivers.RPCMessageReceiver& /&
&!-- 配置没有返回值的方法
lessonAction 的第一个方法 ,一直下去
&&&&&&& &messageReceiver mep=&http://www.w3.org/2004/08/wsdl/in-only&
&&& class=&org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver& /& &&
&&& && & --&
&/ messageReceivers &
&/ service &
、在 web.xml 文件添加如下代码:
&!-- 用于初始化 spring 容器的监听器 --&
& listener &
& listener-class & org.springframework.web.context.ContextLoaderListener &/ listener-class &
&/ listener &
&!-- Spring ApplicationContext 配置文件的路径 , 可使用通配符,多个路径用 , 号分隔 . 此参数用于 Spring-Context loader --&
& context-param &
& param-name & contextConfigLocation &/ param-name &
& param-value & classpath*:/applicationContext*.xml &/ param-value &
&/ context-param &
&!--axis2 & WebService
配置信息开始 --&
& servlet &
& servlet-name & AxisServlet &/ servlet-name &
servlet-class & org.apache.axis2.transport.http.AxisServlet
servlet-class &
&!--&init-param&--&
&!--&param-name&axis2.xml.path&/param-name&--&
&!--&param-value&/WEB-INF/conf/axis2.xml&/param-value&--&
&!--&param-name&axis2.xml.url&/param-name&--&
&!--&param-value&http://localhost/myrepo/axis2.xml&/param-value&--&
&!--&param-name&axis2.repository.path&/param-name&--&
&!--&param-value&/WEB-INF&/param-value&--&
&!--&param-name&axis2.repository.url&/param-name&--&
&!--&param-value&http://localhost/myrepo&/param-value&--&
&!--&/init-param&--&
& load-on-startup & 1 &/ load-on-startup &
&/ servlet &
&!-- 可要可不要开始 --&
& servlet &
& servlet-name & AxisAdminServlet &/ servlet-name &
& servlet-class &
&&&&&&&&&&& org.apache.axis2.webapp.AxisAdminServlet
&/ servlet-class &
&/ servlet &
&!-- 可要可不要结束 --&
&!-- servlet&
&&&&&&& &servlet-name&SOAPMonitorService&/servlet-name&
&&&&&&& &display-name&SOAPMonitorService&/display-name&
&&&&&&& &servlet-class&org.apache.axis2.soapmonitor.servlet.SOAPMonitorService&/servlet-class&
&&&&&&& &init-param&
&&&&&&&&&&& &param-name&SOAPMonitorPort&/param-name&
&&&&&&&&&&& &param-value&5001&/param-value&
&&&&&&& &/init-param&
&&&&&&& &init-param&
&&&&&&&&&&& &param-name&SOAPMonitorHostName&/param-name&
&&&&&&&&&&& &param-value&localhost&/param-value&
&&&&&&& &/init-param&
& &&&&&& &load-on-startup&1&/load-on-startup&
&&& &/servlet --&
& servlet-mapping &
& servlet-name & AxisServlet &/ servlet-name &
& url-pattern & /servlet/AxisServlet &/ url-pattern &
&/ servlet-mapping &
& servlet-mapping &
& servlet-name & AxisServlet &/ servlet-name &
& url-pattern & *.jws &/ url-pattern &
&/ servlet-mapping &
& servlet-mapping &
& servlet-name & AxisServlet &/ servlet-name &
& url-pattern & /services/* &/ url-pattern &
&/ servlet-mapping &
&!-- 可要可不要开始 --&
& servlet-mapping &
& servlet-name & AxisAdminServlet &/ servlet-name &
& url-pattern & /axis2-admin/* &/ url-pattern &
&/ servlet-mapping &
&!-- 可要可不要结束 --&
&!-- axis2 & WebService
配置信息结束 --&
3.7 、工程结构
四、部署 tomcat
、在浏览器访问: http://localhost:8088/axis/services/LessonAction?wsdl
,,显示如图,则表明发布 webservice 成功
、客户端调用:
org.apache.axiom.om.OMAbstractF
org.apache.axiom.om.OME
org.apache.axiom.om.OMF
org.apache.axiom.om.OMN
org.apache.axis2.AxisF
org.apache.axis2.addressing.EndpointR
org.apache.axis2.client.O
org.apache.axis2.rpc.client.RPCServiceC
javax.xml.namespace.QN &
TestMain { &
main(String args[]){ &
使用 RPC 方式调用
WebService &&&&&&&&&
&&& &&& & getRPCServiceClient ();
getRPCServiceClient() {
&&&&&& & RPCServiceClient serviceC
&&&&&&&&&& serviceClient =
RPCServiceClient();
&&&&&& &&& Options options = serviceClient.getOptions(); &
&&&&&& &&&
指定调用 WebService 的
&&&&&& &&& EndpointReference targetEPR =
EndpointReference( &
是浏览器中的访问地址
&http://localhost:8088/axis/services/LessonAction?wsdl&
&&&&&& &&& options.setTo(targetEPR); &
&&&&&& & &&
指定 sum 方法的参数值
&&&&&& &&& Object[] opAddEntryArgs =
Object[] {1,2}; &
&&&&&& &&&
指定 sum 方法返回值的数据类型的 Class 对象
&&&&&& &&& Class[] classes =
&&&&&& &&&
指定要调用的 sum 方法及 WSDL 文件的命名空间
&&&&&&&&&& //
第一个参数浏览器中看到 targetNamespace 的值
targetNamespace=&http://service.& &
第二个参数是方法名
&&&&&& &&& QName opAddEntry =
QName( &http://service.& , &sum&
&&&&&& &&&
调用 sum 方法并输出该方法的返回值
&&&&&& &&& System.
.println(serviceClient.invokeBlocking(opAddEntry, opAddEntryArgs, classes)[0]); & //
(AxisFault e) {
&&&&&&&&&&
Auto-generated catch block
&&&&&&&&&& e.printStackTrace();
如果有错或者有更好的方法,麻烦告知,谢谢!
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致8137人阅读
开始本篇之前, 先说说 Buttom-up(从下到上)和Top-down(从上到下)的概念
&这是开发WebService的两种方式。
bottom-up 方式: 先创建Java Bean或EJB, 然后通过Web Services模板建立一个WSDL文件和Web service
Top-down方式: 先创建一个WSDL文件。 WSDL可以通过WSDL编辑器来完成, 然后通过Web Services 来建立Web Service和相应的Java类
使用Top-down 方式的好处是:
如果实现防止不同语言一些特定的数据类型的不兼容性,推荐先定义WSDL接口,包含输入输出参数,返回值等数据类型。 这样,服务端不用关心客户端怎么调用,客户端也不用关系服务端如何实现。
开发步骤如下:
新建一个Dynamic Web Project在此Project下新建一个WSDL文件
按照步骤一步步完成后, 就可以图形化绘制此WSDL
绘制完成, 保存。通过WSDL生成Web service.
新建Web Services,选 “Top down Java Bean Web Service”。 选刚刚生产的WSDL
服务器类型滑块调到&Develop service&
&&&&&&&&&&& 6. 一路 Next, 生成Java Code后, 修改Impl 结尾的java Code就可以了
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3168835次
积分:23977
积分:23977
排名:第252名
原创:443篇
转载:66篇
评论:304条
文章:43篇
阅读:192586
文章:28篇
阅读:48153
文章:15篇
阅读:50614
(1)(3)(1)(6)(4)(3)(4)(5)(3)(1)(1)(1)(2)(1)(3)(5)(4)(4)(1)(6)(5)(5)(8)(3)(2)(7)(14)(7)(5)(4)(3)(16)(8)(8)(3)(13)(20)(27)(5)(9)(9)(16)(1)(8)(5)(10)(2)(6)(18)(4)(1)(3)(1)(5)(12)(19)(5)(2)(3)(15)(11)(3)(2)(3)(6)(13)(2)(1)(3)(1)(2)(2)(1)(1)(2)(4)(3)(3)(4)(1)(6)(7)(4)(5)(4)(3)(15)(14)(7)(1)(1)(1)(5)}

我要回帖

更多关于 西安开发区整合 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信