Axis2快速开发指南

http://ws.apache.org/axis2/1_3/quickstartguide.html可以找到原文,这里并没有彻底按照原文进行翻译。

准备工作
1、下载并安装JDK,Axis2要求JDK至少为1.4。设置JAVA_HOME环境变量;
2、下载Axis2;
3、解压Axis2后你会找到一个名为axis2.war的文件,把它拷贝到servlet引擎的发布目录;
4、设置AXIS2_HOME环境变量,或许你应该把%AXIS2_HOME%\bin变量加入到PATH中去。

在很多情况下,我们需要一个Service的WSDL文件,%AXIS2_HOME%\bin目录中的Java2WSDL可以根据你的代码自动生成该WSDL文件。同样有的时候会根据WSDL文件自动生成Java文件,这个工具wsdl2java也同样在%AXIS2_HOME%\bin目录中。
1、编译你的Java服务类
2、用以下命令通过服务类生成WSDL文件:
java2wsdl -cp . -cn package.StockQuoteService -of StockQuoteService.wsdl
想通过WSDL文件生成对应的Java文件,参看wsdl2java命令。

以下的例子均采用将我们定义的服务打包成aar文件拷贝到webapps\axis2\WEB-INF\services目录中。

第一个简单的Axis2 Web Service

以下是要作为WebService发布的类代码:

java 代码
  1. package org.jivaro.hw;   
  2.   
  3. public class HelloWorldService {   
  4.     public String echo(String value) {   
  5.         System.out.println("HelloWorld Service received: " + value);   
  6.   
  7.         return "HelloWorld Service received: " + value;   
  8.     }   
  9. }  

我们要发布这个Service,就得定义一个暴露这个类,通过定义这个services.xml:

xml 代码
  1. <service>  
  2.     <parameter name="ServiceClass" locked="false">  
  3.         org.jivaro.hw.HelloWorldService   
  4.     </parameter>  
  5.     <operation name="echo">  
  6.         <messageReceiver  
  7.             class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />  
  8.     </operation>  
  9. </service>  

嗯,现在我们具备了一个Web Service类,和一个描述服务的XML文件,可以发布了。目录层次应该如此,定义一个同服务名同名的文件夹(这里是HelloWorldService)作为根目录,里面包含了类文件和META-INF文件夹,META-INF下包含了services.xml文件。不用aar文件,也可以直接将这个文件夹拷贝到发布目录中去。

aar文件的打包方式有两种:

1、你确定你使用了具备打jar包的开发工具,打包该文件夹下的所有文件,不包含根目录,定义名称为HelloWorldService.aar;

2、使用命令行方式,请确定你设置了正确的环境变量,用jar打包服务类和META-INF,当然这种方式更适合通过build.xml文件来生成。

把HelloWorldService.aar拷贝到webapps\axis2\WEB-INF\services目录中。

启动Tomcat,通过控制台应可以看到如下信息

[INFO] Deploying Web service: HelloWorldService.aar

通过浏览器,输入:http://localhost:8080/axis2/services/listServices

能看到所有现有的服务,同样你能找到:

HelloWorldService

Service EPR : http://localhost:8080/axis2/services/HelloWorldService

Service Description : No description available for this service

Service Status : Active
Available Operations

  • echo

http://localhost:8080/axis2/services/HelloWorldService?wsdl,能看到这个服务的wsdl定义

http://localhost:8080/axis2/services/HelloWorldService?xsd,能查看这个服务的概要

http://localhost:8080/axis2/services/HelloWorldService/echo?value=111,可以看到返回了一个xml串:

xml 代码
  1. <ns:echoResponse xmlns:ns="http://hw.jivaro.org">  
  2.   <ns:return>HelloWorld Service received: 111</ns:return>    
  3. </ns:echoResponse>  

注意:因为我们的echo方法是这样定义的:public String echo(String value),所以在url里的参数是value而不是其它的变量。它正确返回了期待的字符串。

什么是WSDL?

是一种web服务描述语言,它描述了所提供的服务:

  • 它提供了哪些服务
  • 怎样调用这些服务
  • 当用户调用业务服务时,该业务服务需要用户提供什么信息?
  • 用户如何提供这些必须信息
  • 服务将以什么格式返回给用户的信息

通常,我们还需要了解SOAP。

关于WSDL的理解,可以查阅http://www.ibm.com/developerworks/cn/webservices/ws-intwsdl/part1/系列的文章。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值