【转】Axis客户端调用实例

最近一个项目中需要用到调用WebService,实现相关功能,这次调用客户用Axis生成的webService时,也选用Axis来生成客户端实现调用。应用的过程也是学习的过程,下面列出具体的例子,以大家参考,互相学习。

一 .环境配置


首先下载Axis1.x和JDK、TOMCAT。
Axis1.x : http://ws.apache.org/axis/ 我下载的是axis-bin-1_4
JDK1.5和Tomcat5大家可以参考其它安装配置说明
然后解压Axis1.4,然后将axis-1_4\webapps目录下的axis工程拷贝到TOMCAT的webapps目录下
启动TOMCAT服务器,打开localhost:8080/axis/ 如果正确显示,如果显示正确,可以看到如下:
[img]http://dl.iteye.com/upload/attachment/0076/3354/5fddabda-3698-3dba-9c88-d83cdde69c80.jpg[/img]


点击Validation可以查询需要的JAR是不是都存在,如果不存在,可以根据URL进行下载,其实也就只要下这三个jar就可以了activation.jar,mail.jar,xmlsec-1.4.0.jar,分别是下载后拷贝到Tomcat的webapps\axis\WEB-INF\lib目录下。如果JAR都存在了,则显示如下信息:

[img]http://dl.iteye.com/upload/attachment/0076/3357/5c80f1ee-18f6-3329-b023-649b121bf7ee.jpg[/img]

到这步就可以进行Axis的服务端发布WebService了,Web Service服务端开发更多具体方法请参考其它文档。下面是一种介绍

编写JAVA类Hello.java,内容如下:


java 代码
public class Hello{
public String hello(String name){
if(name==null)
name = "";
return "你好"+name+",欢迎来到Web服务的世界!";
}
}


仅此而已,无需编译,将该文件改名为Hello.jws并拷贝到AXIS应用目录Tomcat 的 webapps\axis下。

下面我们就可以测试该Web服务了,打开浏览器并输入刚刚创建的文件名对应的URL地址 http://localhost:8080/axis/Hello.jws 浏览器显示如下结果:

[img]http://dl.iteye.com/upload/attachment/0076/3359/ae0fd090-a922-3cf1-b3d2-e3a744e21d17.jpg[/img]


点击可以查看到WSDL文档,如下


xml 代码
<?xml version="1.0" encoding="UTF-8" ?>
-<wsdl:definitions
targetNamespace="http://localhost:8080/axis/Hello.jws"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://www.w3.org/2000/xmlns/"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:impl="http://localhost:8080/axis/Hello.jws"
xmlns:intf="http://localhost:8080/axis/Hello.jws"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
- <wsdl:message name="helloRequest">
<wsdl:part name="name" type="xsd:string" />
</wsdl:message>
+ <wsdl:message name="helloResponse">
- <wsdl:portType name="Hello">
- <wsdl:operation name="hello" parameterOrder="name">
<wsdl:input name="helloRequest" message="intf:helloRequest" />
<wsdl:output name="helloResponse" message="intf:helloResponse" />
</wsdl:operation>
</wsdl:portType>
- <wsdl:binding name="HelloSoapBinding" type="intf:Hello">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="hello">
<wsdlsoap:operation soapAction="" />
- <wsdl:input name="helloRequest">
<wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://DefaultNamespace" />
</wsdl:input>- <wsdl:output name="helloResponse">
<wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost:8080/axis/Hello.jws" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:service name="HelloService">
- <wsdl:port name="Hello" binding="intf:HelloSoapBinding">
<wsdlsoap:address location="http://localhost:8080/axis/Hello.jws" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

得到WSDL文档后,现在进行AXIS客户端的生成。我们前面安装的AXIS环境中已经包含着这样的工具,它是一个JAVA类,类名为:org.apache.axis.wsdl.WSDL2Java。打开命令行窗口,转到刚才TOMCAT的 webapps\axis 目录下的WEB-INF子目录。确保Tomcat服务已经处于启动状态,键入命令 :
Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/services/Hello?WSDL //这个地方可以是WSDL文件,也可以是WSDL的路径地址
该命令执行的结果是在当前所在目录(TOMCAT的 webapps\axis WEB-INF子目录)下产生一个子目录 ,该目录下有四个JAVA源文件,它们分别是:

Hello.java 定义了Web服务接口,此例中只有一个hello方法。

HelloService.java 定义了用于获取Web服务接口的方法。

HelloServiceLocator.java 接口HelloService的具体实现。

HelloSoapBindingStub.java Web服务客户端桩,通过该类与服务器交互。


这四个JAVA类帮我们处理了大部分的逻辑,我们需要的仅仅是把这些类加到我们的项目然后创建一个我们自己的类来调用它们即可。为此我们新加一个类Main.java,为了方便,让这个类与刚产生的四个类都在同一个包下。内容如下:


java 代码
//Main.java
package localhost.axis.Hello_jws;
public class Main{
public static void main(String[] args) throws Exception{
HelloService service = new HelloServiceLocator();
Hello hello = service.getHello();
System.out.println("Response:"+hello.hello("芒果"));
}
}



在Eclipse或把Java文件编译后执行,即可调用Axis的WebService。实现具体功能。


以上重点在于介绍Axis的客户端调用,对于初学者应该注意Axis环境的设置,和用WSDL2Java生成客户端文件。由于Axis1.x没有什么Eclipse


以上文章大部分转载,看完并学习后,觉得很管用,留在空间,以便日后查阅。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值