我平时开发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通信了。
分享到:
相关推荐
【标题】"MyEclipse基于JAX-WS开发Webservice+WebserviceClient客户端调用" 涉及到的关键技术主要包括MyEclipse集成开发环境、JAX-WS规范、Web服务(Webservice)以及客户端调用。下面将详细介绍这些概念及其相互...
通过右键点击项目,选择“New” -> “Web Service” -> “JAX-WS Web Service”,然后按照向导步骤操作,MyEclipse会根据SEI生成相应的WSDL文件。 3. 实现SEI:为SEI创建一个实现类,实现接口中定义的方法。这样,...
此外,Eclipse、IntelliJ IDEA等IDE也提供了对JAX-WS的集成支持,简化了开发过程。 ### 6. 文件列表解析 在提供的压缩包`DownFileWebService&Client`中,可能包含了以下内容: - `WebService`相关的Java源代码,...
使用JAX-WS(Java API for XML Web Services)注解如`@WebService`和`@SOAPBinding`来声明服务接口和方法。 - 接下来,实现这个接口。在实现类中,编写实际的服务逻辑。 - 最后,右键点击项目,选择"Web Service" ...
- **JAX-WS客户端调用**:Eclipse提供了工具生成客户端代理类,只需右键点击项目,选择"New" -> "Other" -> "Web" -> "Web Service Client",输入WSDL URL,生成后可以直接调用服务方法。 - **SOAPUI测试工具**:...
【标题】"eclipse+webservice简单实例源码"揭示了这个压缩包是关于使用Eclipse集成开发环境创建和运行一个简单的Web服务示例的源代码。Eclipse是一款广泛使用的开源IDE,尤其在Java开发中非常流行。Web服务,尤其是...
【Eclipse下WebService学习】 在IT行业中,Web Service是一种基于开放标准(如XML、WSDL和SOAP)的互操作技术,允许不同系统间的应用程序通过网络进行通信。它提供了一种松散耦合的方式,使得软件组件可以跨越各种...
【WebServiceClient】是一个用于调用Web服务的客户端应用程序示例,它包含了代码实现和相关文档。Web服务是一种基于网络的软件应用,通过标准的XML(可扩展标记语言)进行通信,使得不同系统间的交互变得更加简单和...
总的来说,使用JDK开发WebService涉及到了Java编程、JAX-WS规范、XML以及Eclipse的使用技巧。掌握这些知识点,开发者可以灵活地创建和使用Web服务,实现跨平台、跨语言的数据交换。通过实际操作和实验,你可以加深...
总结,Eclipse环境下使用JavaBean开发WebService涉及的主要技术有JavaBean规范、JAX-WS、WSDL和Servlet容器。通过这种方式,我们可以快速地构建服务端和客户端,实现数据交换和功能调用。这种开发模式在分布式系统和...
总结,Java调用WebService涉及的主要知识点包括:理解WebService的概念,掌握JAX-WS框架,使用Eclipse生成和调用客户端代码,异常处理,以及如何在实际应用中部署和运行。通过上述步骤,开发者可以在Java环境中高效...
4. **jaxb-api.jar**: Java Architecture for XML Binding (JAXB) 是JAX-WS的一部分,用于将Java对象与XML文档相互转换,是数据序列化的一种方式。 5. **stax-api.jar**: Streaming API for XML (StAX) 提供了一种...
- 创建Ws_Client:使用Java的wsimport工具或IDE(如Eclipse)的工具,根据WSDL生成客户端代码。 - 调用服务:在Ws_Client中实例化代理类,然后调用相应方法,传递参数,执行服务操作。 6. 注意事项: - 数据编码...
7. **开发工具**:CXF提供了CXF-Tools,这是一套命令行工具和Eclipse插件,帮助开发者生成服务客户端和服务器端代码,调试Web服务,以及生成WSDL文件。 8. **部署选项**:CXF可以独立运行,也可以嵌入到应用服务器...
开发者可以通过实现`javax.jws.WebService`注解的接口来创建服务端点,使用`@WebServiceClient`注解来创建客户端代理。 2. **JAXB组件**:`javax.xml.bind`和`com.sun.xml.bind`等,用于XML与Java对象之间的自动...
JAX-WS通过Wsimport工具可以自动生成客户端所需的代理类,开发者只需要调用这些类的方法即可与服务端通信。另一种方法可能是使用开源库,如Apache CXF,它提供了更灵活的配置选项和更丰富的功能,如支持RESTful风格...
在Eclipse或IntelliJ IDEA等IDE中,有内置的工具支持创建和调用Web Service,如Eclipse的Web Service Explorer或IntelliJ IDEA的Web Service Client。 7. **异常处理**: 调用Web Service时,可能遇到网络问题、...
对于SOAP服务,可以使用`JAX-WS`的`Service`类生成代理对象;对于REST服务,可以使用`HttpURLConnection`,`HttpClient`或JAX-RS的`Client` API发起HTTP请求。 4. **WebServices1项目**: 压缩包中的`WebServices1...
3. **使用JAX-WS(Java API for XML Web Services)**:Eclipse内置了JAX-WS工具,可以自动为服务类生成WSDL文件,并提供部署描述符(web.xml)的配置。 4. **部署并运行**:将项目部署到Tomcat或其他Web服务器上,...