Axis2教程 命令行发布,java2wsdl,wsdl2java

Axis2 WebService

实现webservice的开源框架有很多,axis是比较常用的一种,它能让你在tomcat上方便的发布webservice,它能帮助你把代码转化成wsdl文件,或者把wsdl文件转化成java代码,下面对axis2作详细说明,我会侧重讲cmd命令行发布和转化,因为最新版axis2的插件和多数eclipse版本不兼容。

 

一.下载 axis2

下载地址:http://axis.apache.org/axis2/java/core/download.cgi

当前最新版本是1.6.1。

下载到本地:

 

Axis2-1.6.1-bin.zip里有axis2的jar包。

Axis2-1.6.1-docs.zip里有详细的帮助文档。

Axis2-1.6.1-src.zip里是源代码,方便爱学习的同学研究。

Axis2-1.6.1-war.zip里是axis的管理平台,直接扔到tomcat中就能用了。

二.创建项目

PipeService代码如下:

 

package com.pipe.webservice; import com.pipe.bean.User; public class PipeService { public String sayHello(String name) { return name + " say: hello"; } public User getUser(String userName) { User user = new User(); user.setName(userName); return user; } }

 

三. 发布 WebService

1. 直接拷贝目录结构到tomcat 发布

网上帮助:http://axis.apache.org/axis2/java/core/docs/userguide-buildingservices.html#deployrun

直接拷贝如下目录结构到webapps/axis2/WEB-INF/services

 

Services.xml

 

<service name="PipeService" > <description> Please Type your service description here </description> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> </messageReceivers> <parameter name="ServiceClass">com.pipe.webservice.PipeService</parameter> </service>

 

重启tomcat,成功。

 

2. 打包aar 文件,通过页面upload发布

 

考虑到给客户发布的话不太方便,故下面把它打成aar包。

在C盘下建文件夹AxisSession,按上文提到的目录结构把class和server.xml放好。

通过cmd进入目录,

打命令:jarcvf pipeservice.aar .(注意最后的句点)

回到该目录可以看到pipeservice.aar,通过axis2管理平台上传。

 

 

 

用户名密码admin axis2

 

同样成功。

 

四.Java2wsdl

 

在最外层输全带包名的类名。

java2wsdl -cn com.pipe.webservice.PipeService

 

成功生成。

 

五.Wsdl2java

 

wsdl2java -uri PipeService.wsdl

 

生成2个文件。




public void downFile(StringfilePath) { System.out.println(filePath); StringtargetUrl = "http://localhost:8090/axis2/services/PipeService"; try { PipeServiceStubps = new PipeServiceStub(targetUrl); PipeServiceStub.SayHellosayHello = new PipeServiceStub.SayHello(); PipeServiceStub.GetUsergetUser = new PipeServiceStub.GetUser(); sayHello.setName("sam"); SayHelloResponse shr = ps.sayHello(sayHello); getUser.setUserName("sam"); GetUserResponsegur = ps.getUser(getUser); Useru = gur.get_return(); System.out.println(shr.get_return()); System.out.println(u.getName()); }catch (AxisFault e) { e.printStackTrace(); }catch(RemoteException e) { // TODOAuto-generated catch block e.printStackTrace(); }

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值