两个类一个接口一个是实现,怎么用axis wsdl 发布发布成wsdl

当前访客身份:游客 [
当前位置:
关于webservice的软件有很多,这里只讨论cxf、Axis2这两种。(鄙人有个疑惑,求证实:由于cxf对spring框架支持的很好,而且操作起来也最简单,所以搞java的同学都选择cxf;但是,用.Net的同学貌似偏向于Axis2。是这样么??)
进入正题。。。分别用cxf、Axis2创建服务端、客户端,正常调用我都实现了。那比如:用cxf创建好一个webservice服务端,是否可以用Axis2写一个客户端调用?反之,是否也可以呢?
cxf客户端生成的是接口interface,直接调用里面的方法就ok了;但是Axis2客户端生成的是什么Stub的类,根本不是接口,代码也比较繁琐,毫无头绪。。。。怎么实现两者互调呢,真是气人哪,还是我想多了,根本不能混为一谈,求教育!!!!!
共有5个答案
<span class="a_vote_num" id="a_vote_num_
wsdl文件是webservice的标准,你先生成wsdl文件,再用不同的webservice框架去根据wsdl生成相应的客户端和服务端代码。
<span class="a_vote_num" id="a_vote_num_
Axis2 的请求输入输出参数不知道怎么改,感觉和cxf调要坑爹
<span class="a_vote_num" id="a_vote_num_
axis调调客户端一般是动态调用,也就是说不用根据服务端去生成客户端代码,有时候开发起来还是比较方便的:
&&try { &&&RPCServiceClient client = new RPCServiceClient(); &&&Options options = client.getOptions();&&
&&&String address = &&;
&&&EndpointReference epf = new EndpointReference(address);&
&&&options.setTo(epf);
&&&QName qname = new QName(&&, &addOrgInfo&); &&&String par = &&orgs&&org&&orgId&0001&/orgId&&name&测试1&/name&&parentOrgId&&/parentOrgId&&initials&测试1&/initials&&/org&&/orgs&&; &&&Object[] result = client.invokeBlocking(qname, new Object[] { par }, new Class[] { String.class }); &&&System.out.println(result[0]); &&} catch (AxisFault e) { &&&e.printStackTrace(); &&}
这段就是掉axis调cxf服务端的代码。
<span class="a_vote_num" id="a_vote_num_
引用来自“伍佳灵”的答案 axis调调客户端一般是动态调用,也就是说不用根据服务端去生成客户端代码,有时候开发起来还是比较方便的:
&&try { &&&RPCServiceClient client = new RPCServiceClient(); &&&Options options = client.getOptions();&&
&&&String address = &&;
&&&EndpointReference epf = new EndpointReference(address);&
&&&options.setTo(epf);
&&&QName qname = new QName(&&, &addOrgInfo&); &&&String par = &&orgs&&org&&orgId&0001&/orgId&&name&测试1&/name&&parentOrgId&&/parentOrgId&&initials&测试1&/initials&&/org&&/orgs&&; &&&Object[] result = client.invokeBlocking(qname, new Object[] { par }, new Class[] { String.class }); &&&System.out.println(result[0]); &&} catch (AxisFault e) { &&&e.printStackTrace(); &&}
这段就是掉axis调cxf服务端的代码。
& 我按你这种方式实现之后,运行总是报这个错误的:
org.apache.axis2.AxisFault: Transport out has not been set,不知道是怎么回事的
--- 共有 2 条评论 ---
请问能不能不使用那个targetNamespace ,之前别人用的axis客户端调用没有用这个命名空间,服务端也是axis。现在是别人的axis客户端调用我的cxf服务端,我就必须要加上这个axis。因为axis调用的时候是不需要知道接口的,所以就不存在网上别人说的将服务端与客户端调用的接口报名要一样的问题了(这应该是同一种服务产品实现的才会有这样的问题吧。)
(1年前)&nbsp&
这个是axis2调用axis2吧,两者发送的报文是不一样的,我也在纠结着怎么用axis2调用cxf
(2年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
用AXIS2创建服务端,CXF直接用WSDL2JAVA命令从WSDL生成客户端代码。要注意一点,endpointadress可能需要手工指定,否则会找不到。介个我也不知道为什么。
更多开发者职位上
有什么技术问题吗?
追风少年...的其它问题
类似的话题我现在只有一个wsdl地址和一个接口文档,怎么才能通过webservice实现数据推送
[问题点数:50分,结帖人hr]
我现在只有一个wsdl地址和一个接口文档,怎么才能通过webservice实现数据推送
[问题点数:50分,结帖人hr]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。dannyy1026 的BLOG
用户名:dannyy1026
文章数:196
评论数:321
访问量:512183
注册日期:
阅读量:24883
阅读量:248639
阅读量:990365
阅读量:145236
[匿名]51cto游客:
[匿名]51cto游客:
51CTO推荐博文
如何用WSDL4J构建Spring+AXIS自动创建的Web service对应客户端我的另一篇博文Spring集成AXIS2的Web service配置方法()提过到如何用Spring+AXIS自动完成WSDL的定义和对象拆装/封装,简单地把Spring声明的bean所有公开方法转换成Web service方法。而Apache项目WSDL4J则是根据WSDL的XML文档就可以自动生成Web service的客户端代码,这样的话,构建web service服务端和客户端都显得没有多少手工编码了。其实WSDL4J也是可以生成服务端代码的,可是手工编写WSDL还不如用AXIS自动生成来得快。用WSDL4J创建客户端代码的命令如下:java -cp %AXIS_CLASSPATH% java org.apache.axis.wsdl.WSDL2Java -o DIR_NAME -p PACKAGE_NAME 其中AXIS_CLASSPATH应该包括axis.jar,commons-discovery.jar,commons-logging.jar,jaxrpc.jar,log4j.jar,saaj.jar,wsdl4j.jar,activation.jar,mail.jar。该命令会在所指定目录下创建JAVA包,里面有[web_service]Locator.java, [web_service].java, [web_service]PortType.java, [web_service]SOAP11BindingStub.java,[web_service]SOAP12BindingStub.java,以及方法中所有涉及的参数bean等。客户代码只需new [web_service]Locator实例,其实现了[web_service]接口,用get[web_service]SOAP11port_http(URL)方法取得方法实现对象[web_service]PortType实现,可以直接调用其方法像本地方法一样了。URL如果是HTTPS协议的,需要设SSL证书路径到系统属性配置中去(System.setProperty("javax.net.ssl.trustStore","ssl.cer");)上面的都是简单的工具描述,可是如果不注意会出现一些意料不到的问题。1、首先AXIS自动发布的WS方法参数会自动对应bean方法的参数名,结果在构建SOAP元素XML标签会映射过来,如果你用AOP想实现基本检验和类型检查之类的拦截的话,就要小心SOAP元素名与bean方法参数名的关系了;2、其次WSDL2JAVA小工具好像不支持HTTPS(用户检验支持),这时可以用浏览器打开WSDL文档然后保存成文件被调用;3、生成的JAVA代码会把URL写死(如果WSDL2JAVA工具用URL参数),所以默认创建PortType(不带参数)的方法会用到该URL;4、如果Spring的ws 方法参数有通用类型如Object会导致序列化/反序列化去错,必须参数和返回类型保证为POJO对象或基本数据类型。5、AXIS2有一些不同之处,需注意AXIS2基于JDK6。本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)
10:27:50 21:35:02axis2-1.6.0服务端开发服务端示例-根据已有wsdl生成_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
axis2-1.6.0服务端开发服务端示例-根据已有wsdl生成
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
下载文档到电脑,查找使用更方便
还剩8页未读,继续阅读
你可能喜欢两个类一个接口一个是实现,怎么用axis发布成wsdl?高手支招!
[问题点数:40分,结帖人zhoulingchuan]
两个类一个接口一个是实现,怎么用axis发布成wsdl?高手支招!
[问题点数:40分,结帖人zhoulingchuan]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。}

我要回帖

更多关于 axis2 wsdl生成服务端 的文章

更多推荐

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

点击添加站长微信