别人用jax-ws发布的webservice,我尝试了用axis调用webservice即wsdl可以。下面尝试另一种方式调用,用jax-ws方式去调用
2017-03-24 15:04
591 查看
别人用jax-ws发布的webservice,我尝试了用axis调用webservice即wsdl可以。下面尝试另一种方式调用,用jax-ws方式去调用
jax-ws什么意思?
jax是什么?
ws是什么,即webservice。
方法如下:
总结:
使用jax-ws方式的客户端,去调用别人的接口。不需要任何其他的技术,有jdk就行。
1)用Eclipse生成客户端代码(前提是发布wsdl工程要保持运行才能自动生成代码即java类,即http://...?wsdl要可以访问)。
2)在自己的方法中,调用客户端的类,即可。
----------特此说明:
用Eclipse生成jax-ws方法,生成客户端java代码,这种方式,不靠谱。Eclipse生成代码时报错,生成不了代码。但是命令行方式,却可以。
我就遇到过一次:
Eclipse报错:
但是使用jdk的wsimport.exe这个工具就可以生成客户端代码:
使用方法:
打开cmd,进入到wsimport.exe所在的位置,执行如下命令:
wsimport -keep XX?wsdl -d src
wsimport -d ./bin -s ./src XX?wsdl
注意:
①上面两个命令中的src、bin目录需要在bin目录下新建,命名可以任意,否则会报错“directory not found: .\bin”、“directory not found: src”等目录不存在的问题。
②wsimport -d ./bin -s ./src XX?wsdl ,bin目录下存在的是.class文件,src下存的是.java文件
jax-ws什么意思?
jax是什么?
ws是什么,即webservice。
方法如下:
http://www.cnblogs.com/HigginCui/p/5833415.htmlJDK提供了一个wsimport.exe的命令,主要是用于将WebService生成客户端代码,然后好调用WebService。 wsimport 是根据JDK1.6.0_21及以上的生成本地代码的,它只能解析服务器端的SOAP协议为1.1,不能解析SOAP1.2的协议。如果解析SOAP1.2 将会解析 如果遇到 'wsimport' 不是内部或外部命令,也不是可运行的程序,则么办? 但是还是会报错: wsimport "不支持使用 SOAP 编码。 原因是: http://blog.csdn.net/u010668910/article/details/50955937#comments 解决方式是:用Eclipse自动生成客户端代码,不用wsimport。 生成完毕之后,客户端代码怎么写? 使用Eclipse方式和wsimport两种方式,生成的客户端代码的.java文件是不一样的,因此客户端调用也不一样。 1)wsimport生成客户端代码方式,客户端调用代码: 网上的客户端调用代码: 我亲自测试成功的代码: 2)Eclipse生成的客户端代码方式,客户端调用代码: 用Eclipse生成的客户端代码,你回发现,没有一个形如"WeatherInterfaceImpl"即以Impl结尾的.java文件,为什么? 通过Eclipse自动产生的Code中, 有一个Java 文件以Proxy结尾, 这个就是调用的Class了。 为什么是Proxy结尾的? 原因是,Eclipse方式生成的客户端代码,是使用的java代理(即Java Proxy,Proxy就是代理的意思): 所以其客户端调用代码如下: |
使用jax-ws方式的客户端,去调用别人的接口。不需要任何其他的技术,有jdk就行。
1)用Eclipse生成客户端代码(前提是发布wsdl工程要保持运行才能自动生成代码即java类,即http://...?wsdl要可以访问)。
2)在自己的方法中,调用客户端的类,即可。
----------特此说明:
用Eclipse生成jax-ws方法,生成客户端java代码,这种方式,不靠谱。Eclipse生成代码时报错,生成不了代码。但是命令行方式,却可以。
我就遇到过一次:
Eclipse报错:
但是使用jdk的wsimport.exe这个工具就可以生成客户端代码:
使用方法:
打开cmd,进入到wsimport.exe所在的位置,执行如下命令:
wsimport -keep XX?wsdl -d src
wsimport -d ./bin -s ./src XX?wsdl
注意:
①上面两个命令中的src、bin目录需要在bin目录下新建,命名可以任意,否则会报错“directory not found: .\bin”、“directory not found: src”等目录不存在的问题。
②wsimport -d ./bin -s ./src XX?wsdl ,bin目录下存在的是.class文件,src下存的是.java文件
相关文章推荐
- java调用webservice WSDL形式接口之apache axis方式调用(一)
- webservice的发布技术不同,客户端调用程序也不一样,从发布的wsdl文档,怎么判断webservice是哪种方式发布的?
- WebService学习笔记系列之一----通过JAX-WS的方式发布WebService
- axis,jax-ws,xfire客户端调用分析,以及webservice万能客户端
- 使用CXF(JaxWsServerFactoryBean、ServerFactoryBean)编码的方式发布WebService服务
- Webservice学习--JAX-WS发布Webservice和调用出现的问题
- java调用webservice WSDL形式接口之apache axis方式调用(一)
- axis,jax-ws,xfire客户端调用分析,以及webservice万能客户端2562
- 基于Java的webservice创建与jax-ws方式调用
- java调用webservice WSDL形式接口之apache axis方式调用(一)
- axis,jax-ws,xfire客户端调用分析,以及webservice万能客户端
- java调用Myeclipse通过jax-ws方式搭建的webservice
- java调用webservice WSDL形式接口之apache axis方式调用(一)
- (图文教程)java 使用JAX-WS框架发布Webservice以及客户端调用
- 客户端利用CXF中的JaxWsProxyFactoryBean 对webservice地址进行调用
- WebService学习之旅(三)JAX-WS与Spring整合发布WebService
- WebService发布与调用问题:expected: {http://schemas.xmlsoap.org/soap/envelope/}Envelope but found: {http://schemas.xmlsoap.org/wsdl/}definitions
- JAX-WS在tomcat上发布Webservice
- JAX-WS在tomcat上发布Webservice
- java调用WSDL接口(使用axis方式)