我平时开发WebService的客户端,总是直接使用Eclipse生成,这样来的快,也很方便。
头一阵子其它组的人用,JAX-WS制作了一个WS,我们使用Ecllipse生成后。发现调用后,无法返回结果,等待数分钟没有返回,不知道为什么。而对方那边已经将方法内容全都注掉。导致当时非常郁闷。心想如果这样,开发方式,以及过去的代码都要改。
无奈,硬着头皮去找为什么,查了两边的堆栈都没有问题,程序本身也没有问题。最后将问题归结到Eclipse使用AXIS1生成的代码问题,准确的说是两边的通许有问题,版本不对。
抓了下包,看了下。对比JAX-WS生成的客户端和Eclipse AXIS生成的客户端,最后发现是AXIS的客户端使用的是HTTP1.0的协议,而JAX-WS使用的是HTTP1.1的协议。
上网又翻了一下,找到了修改AXIS的方法,将AXIS底层换成Apache Client的调用类。只需修改一下axis.jar内部的一个配置文件,位置在/axis/client/client-config.wsdd,修改方法如下:
将下面的文件内容
<?xml version="1.0" encoding="UTF-8"?>
<deployment name="defaultClientConfig" xmlns=http://xml.apache.org/axis/wsdd/ xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<globalConfiguration>
<parameter name="disablePrettyXML" value="true"/>
<parameter name="enableNamespacePrefixOptimization" value="false"/>
</globalConfiguration>
<transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender"/>
<transport name="local" pivot="java:org.apache.axis.transport.local.LocalSender"/>
<transport name="java" pivot="java:org.apache.axis.transport.java.JavaSender"/>
</deployment>
替换成
<?xml version="1.0" encoding="UTF-8"?>
<deployment name="ApacheCommonsHTTPConfig" xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<globalConfiguration>
<parameter name="disablePrettyXML" value="true"/>
<parameter name="enableNamespacePrefixOptimization" value="false"/>
</globalConfiguration>
<transport name="http" pivot="java:org.apache.axis.transport.http.CommonsHTTPSender" />
<transport name="local" pivot="java:org.apache.axis.transport.local.LocalSender" />
<transport name="java" pivot="java:org.apache.axis.transport.java.JavaSender" />
</deployment>
就可以了。完事后重新打包,替换旧的axis.jar。
之后需要补几个apache httpclient (commons-httpclient jar)相关的jar包就可以了。
AXIS 1已经很久不更新了,所以跟新WS有些不兼容,但修改后,AXIS client就可以正常的与其它WS通信了。
分享到:
相关推荐
基于jax-ws 实现的web service client和server端的demo程序。 注:如果使用的是 myeclipse 时 server 部署到tomcat 启动的时候会报错 解决办法:找到myeclipse安装目录下的 plugins 目录里 查找 webservices-rt.jar,...
JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用
webService部署tomcat需要的jax-ws 的完整jar包
MyEclipse8_0中使用 JAX-WS 部署 WebService 实例 - 外衣 - 博客频道 - CSDN_NET.mht
NULL 博文链接:https://hgxs-org.iteye.com/blog/1940916
jax-ws webservice完整demo,包含所有jax-ws 2.2jar包。
JAX-WS自学笔记 本人自学JAX-WS笔记和简单例子,文档标题结构如下: JAX-WS使用教程 1、JAX-WS概述 2、创建Web Service 2.1 从java开始 2.1.1 运行wsgen 2.1.2 生成的WSDL和XSD 2.1.3 目录结构 2.2 从WSDL...
自己自学JAX-WS的心得,内含较为详细的讲解了简单的例子。文档目录如下: JAX-WS自学笔记 本人自学JAX-WS笔记和简单例子,文档标题结构如下: JAX-WS使用教程 1、JAX-WS概述 2、创建Web Service 2.1 从java...
公司代码实现,简单的webservice服务 发布,实现客户端的调用。
亲测可用,Jax-ws所需要的JAR包,拷贝到tomcat安装路径的lib里,实现了webservice发布到tomcat,赞!
如果基于一个JAX-WS进行WebService开发,有很多教程,但是具体怎么更自动地生成一些文件,实现客户端与服务端的交互,都讲得不大清楚,为了让大家更方便地部署,我将服务端、客户端文件的生成与部署全过程以及测试...
使用JAX-WS(JWS)发布WebService 使用myeclipse开发java的webservice的两种方式 方式一: (此方式只能作为调试,有以下bug:jdk1.6u17?以下编译器不支持以Endpoint.publish方式发布document方式的soap,必须在...
NULL 博文链接:https://liuyunlong1229.iteye.com/blog/1678559
利用myeclipse创建的 jax-ws demo
以jdk1.6以上自带的jax-ws来发布webservice,压缩包里包含服务端和客户端,下载导入即可启动运行测试,有疑问的话欢迎咨询哈
对webservice入门是很好的例子 使用webservice注解 基于jax ws jdk自带实现 知识点在readme txt中有详细介绍
使用 Eclipse JavaEE 开发 WebService 时,若选择手动创建原生的JAX-WS服务,需要导入此jar资源(教程详见我的博文https://blog.csdn.net/weixin_50604409/article/details/116399530)。 如果您同时装有 IntelliJ ...
欢迎下载JAX-WS实现WebService.zip。本压缩文件介绍了如何使用JAX-WS技术实现WebService 参考博客:http://blog.csdn.net/gaohuanjie/article/details/50523517
MyEclipse基于JAX-WS开发Webservice+WebserviceClient客户端调用.zip