发布SOAP服务

发布SOAP服务
创建时间: 2010-01-25

Axis提供了两种服务发布方式,一种是即时发布(Instant Deployment),一种是定制发布(Custom Deployment)。

  使用即时发布

  对即时发布的支持是Axis的特色之一,使用即时发布使用户只需有提供服务的Java类的源代码,即可将其迅速发布成Web服务。每当用户调用这类服务的时候,Axis会自动进行编译,即使服务器重启了也不必对其做任何处理,使用非常简单快捷。

  使用即时发布首先需要一个实现服务功能的Java源文件,将其扩展名改为.jws(Java Web Service的缩写),然后将该文件放到“……\webapps\axis”目录下即可。

使用定制发布

  即时发布是一项令人激动的技术,它使Web服务的开发变得如此简单;然而即时发布并不总是最好的选择,比如有些应用系统是第三方提供的,我们没有购买源代码,只有.class文件,但我们又希望将这个应用系统的一些功能对外发布成Web服务,使其能够在更大范围内产生作用,这个时候即时发布技术就无能为力了。此外,即时发布技术并不灵活,无法进行更多的服务配置,这使得它并不能满足一些特定系统的需求。

  因此,Axis提供了另一种服务发布方式,这就是定制发布。

  在此给出一个从加仑到升的容积单位转换的服务,其源码如下:

  文件Capacity.java

package samples.capacity;

public class Capacity{
 public double convertGallon2Litre(double gallon){
  // 实现加仑到升的容积转换
  return gallon * 4.546;
 }
}

  将其编译成.class文件,放置到“……\webapps\axis\WEB-INF\classes\samples\capacity”目录下,即可着手进行发布。

  定制发布不需要构建.jws文件,但必须创建服务发布描述文件deploy.wsdd(Web Service Deployment Descriptor的缩写),这个文件负责描述服务的名称、入口等信息,其内容如下:

  文件deploy.wsdd

<deployment xmlns="http://xml.apache.org/axis/wsdd/"

xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

<service name="Capacity" provider="java:RPC">

<parameter name="className" value="samples.capacity.Capacity"/>

<parameter name="allowedMethods" value="*"/>

</service>

</deployment>

  将该文件也放到“……\webapps\axis\WEB-INF\classes\samples\capacity”目录下,然后可以采用Axis提供的一个客户端管理工具——AdminClient来完成服务的定制发布。

  在“……\webapps\axis\WEB-INF\classes\samples\capacity”目录下,运行:

java org.apache.axis.client.AdminClient deploy.wsdd

执行该命令前需将 <AXIS_HOME>/lib目录下所有jar包 以及 mail.jar、activation.jar 加入classpath。

就是说创建一个环境变量classpath,将jar包的路径都加进去。

参考路径:

%AXIS_HOME%\lib\activation.jar;%AXIS_HOME%\lib\axis.jar;%AXIS_HOME%\lib\axis-ant.jar;%AXIS_HOME%\lib\bsf.jar;%AXIS_HOME%\lib\castor-0.9.5.2.jar;%AXIS_HOME%\lib\commons-codec-1.2.jar;%AXIS_HOME%\lib\commons-discovery-0.2.jar;%AXIS_HOME%\lib\commons-httpclient-3.0-rc2.jar;%AXIS_HOME%\lib\commons-logging-1.0.4.jar;%AXIS_HOME%\lib\commons-net-1.0.0-dev.jar;%AXIS_HOME%\lib\httpunit.jar;%AXIS_HOME%\lib\ibmjsse.jar;%AXIS_HOME%\lib\javax.jms.jar;%AXIS_HOME%\lib\jaxrpc.jar;%AXIS_HOME%\lib\JimiProClasses.jar;%AXIS_HOME%\lib\junit-3.8.1.jar;%AXIS_HOME%\lib\log4j-1.2.8.jar;%AXIS_HOME%\lib\mailapi_1_3_1.jar;%AXIS_HOME%\lib\saaj.jar;%AXIS_HOME%\lib\servlet.jar;%AXIS_HOME%\lib\wsdl4j-1.5.1.jar;

 

  可以看到以下运行结果:

Processing file deploy.wsdd

<Admin>Doneprocessing</Admin>

  这表明Capacity服务定制发布完成。

  通过访问http://localhost:8080/axis/services/Capacity?wsdl可以看到这个服务的WSDL描述文件,这说明Capacity服务被成功发布了。如下图所示:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值