jboss7的JAX-WS客户端
jboss版本 jboss-eap-6.1, 实际上就是jboss-as-7.x.fianal
本篇讨论使用jboss7自带的cxf库,使用wsdl文件生成和部署jax-ws的客户端程序。
首先明确一点,soap形式的jax-ws的服务/客户两端所依赖的技术框架原理上是么有任何关系的,应此当你拿对方服务的wsdl时,只需考虑你客户端本身的技术栈(很长一段时间我都被误导了)。 我写了一个项目部署在jboss-eap-6.1,查了下它的的jax-ws是cxf实现的,那就索性使用cxf框架构建客户端,省时省力。
步骤:
1.使用jboss自带的wsdl2java工具生成客户端stub
${JBOSS_HOME}/bin/wsconsume.sh(bat) myservice.wsdl
wsconsume工具参考文档。
https://docs.jboss.org/author/display/JBWS/wsconsume
2. 打包生成wsconsume生成的class文件。使用jar命令
${JAVA_HOME}/bin/jar cvf myservcie.jar -C classdir/ .
3. 将jar包添加到你的项目中,并添加项目对jboss cxf的module的依赖。
修改WEB-INFO下的jboss-deployment-structure.xml。 这个文件的作用和意义可自行了解jboss-as的module结构和class load机制
添加对 <module name="org.apache.cxf" />的依赖。
4. 编写调用代码
service = new yourSevice(new URL("your service location"),new Qname("you service's target name","servcie name"));
service_portType = service.getYourServiceHttpSoap12Endpoint()
service_portType.servicemethod();
大功告成。
对于更多jax-ws客户端的知识可参考我另一篇总结,有源码的
http://www.cnblogs.com/surprizeFuture/articles/4784711.html