利用Axis访问rpc/encorded风格的Web Service

53 篇文章 0 订阅
35 篇文章 0 订阅

Soap 基于的Web Service在演化,实现其的技术栈也在随之变化。Java领域出现了许多了Web Service相关的技术,从早期的Apache Axis,xfire到今天的Apache Axis2, Apache CXF, Metro,Spring WS。Java对Soap Web Service在早期提出了JAX-RPC的模型,今天JAX-RPC则被JAX-WS代替,这也体现了业界正在由RPC风格到 Document(Message)风格的转变。

正如Axis官方所说,Axis虽然如今已经逐步被新一代的Web Service技术取代,但是宝刀未老,有时后还是得使用Axis

  • 需要使用JAX-RPC的项目。只有两个主要的JAX-RPC实现,一个是Sun给出的标准参考实现,另一个就是Axis
  • 需要访问或者发布使用SOAP encoding的Web Service的项目,虽然SOAP encoding已经被废弃,新一代的Web Service框架也不再支持这种use,但是也许项目需要接入的Web Service就是用了SOAP encoding的已经基于Axis构建的项目。如果用新一代的Web Service技术重写已有的项目,投资回报堪忧,那估计还是继续用Axis好些。

访问已有的基于rpc/encoded的Web Service是一个比较常见的应用集成场景,尤其是在企业内部的信息交换,如果有跨平台的Service实现存在,这种需求可能更加常见。

Maven依赖

<dependency>
	<groupId>org.apache.axis</groupId>
	<artifactId>axis</artifactId>
	<version>1.4</version>
</dependency>
<dependency>
	<groupId>org.apache.axis</groupId>
	<artifactId>axis-jaxrpc</artifactId>
	<version>1.4</version>
</dependency>
<dependency>
	<groupId>commons-discovery</groupId>
	<artifactId>commons-discovery</artifactId>
	<version>0.5</version>
</dependency>

Maven 插件

MojoHaus Maven 插件项目提供了一个支持Axis wdsl2java/java2wsdl 工具的插件

<plugin>
   <groupId>org.codehaus.mojo</groupId>
   <artifactId>axistools-maven-plugin</artifactId>
   <version>1.4</version>
   <configuration>
      <sourceDirectory>${project.basedir}/src/main/resources</sourceDirectory>
      <packageSpace>top.ourway.wsdl</packageSpace>
      <subPackageByFileName>true</subPackageByFileName>
   </configuration>
   <executions>
      <execution>
         <goals>
            <goal>wsdl2java</goal>
         </goals>
      </execution>
   </executions>
</plugin>

利用其在项目构建生命周期中的代码生成功能,可以很容实现对rpc/encorded服务的访问,使用上和JAX-WS用wsimport工具生成代码相比差不多,所生成代码的使用模式也比较类似。

HelloServerPortType portType = new HelloServiceLocator().getHelloServerPort();
portType.sayHello("li mei");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值