axis2WebService开发指南文档格式.docx
- 文档编号:15685258
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:57
- 大小:501.54KB
axis2WebService开发指南文档格式.docx
《axis2WebService开发指南文档格式.docx》由会员分享,可在线阅读,更多相关《axis2WebService开发指南文档格式.docx(57页珍藏版)》请在冰豆网上搜索。
:
//
一、准备工作
1、开发准备
首先需要下载axis2的相关jar包,到axis的官方网站即可获得开发的依赖包。
下载地址:
//axis.apache.org/axis2/java/core/download.cgi
现在最高的版本是1.5.4的
然后你需要下载官方提供的axis的eclipse插件工具,可以帮助我们打包(aar)及其生产客户端调用代码。
下载页面:
//axis.apache.org/axis2/java/core/tools/index.html
ServiceArchiveWizard-EclipsePlug-in
CodeGeneratorWizard-EclipsePlug-in
2、安装eclipse插件
如果你的eclipse插件安装成功后,会看到如下效果:
3、分析axis2-bin文件目录结构
下载下来的axis2的依赖库,其中有一个axis2-1.5.3-bin.zip的库文件,目录结构如下:
bin文件夹是axis2的常用工具,其中有将wsdl文件转换成客户端调用的wsdl2java工具及将java转换成wsdl文件的工具
conf是axis2的配置文件
lib运行所要的依赖库
repository是发布过的axis服务和文件
sample是示例
webapp是web文件和jsp页面等
4、我们需要将下载下来的axis2-1.5.3-war.zip中的axis2.war这个文件放在我们的tomcat目录下,启动tomcat就会把war文件转成一个可以跑起来的axis2的项目。
Tomcat启动后,在浏览器中输入:
//localhost:
8080/axis2/你可以看到
二、Axis2的简单WebService示例
1、编写一个简单的WebService的服务器端代码,代码如下:
importjava.util.Random;
/**
*<
b>
function:
<
/b>
WebServiceHelloWorld服务示例
*@authorhoojo
*@createDate2011-1-5下午03:
35:
06
*@fileHelloWorldService.java
*@packagecom.hoo.service
*@projectAxis2WebService
*@blog:
*@emailhoojo_@
*@version1.0
*/
publicclassHelloWorldService{
publicStringsayHello(Stringname){
returnname+"
say:
hello[axis2]"
;
}
publicintgetAge(inti){
returni+newRandom().nextInt(100);
}
注意,上面的HelloWorldService是没有package的。
Copy这个类的class文件,放到tomcat目录下的webapps的axis2的WEB-INF目录的pojo文件夹下。
如果没有pojo这个目录就手动创建一个一个文件夹。
然后在浏览器输入:
8080/axis2/
点击Services的链接就可以看到我们手动发布的HelloWorldService了,或者是浏览器地址栏输入:
8080/axis2/services/listServices
你就可以看到你刚才粘贴过去的这个WebService了。
点击链接就可以看到wsdl文件的内容了。
内容很多,如果你看过axis1.x的介绍就知道wsdl文件的大致结构了。
下面讲解下为什么要将class放在pojo文件夹下。
首先我们看看[tomcat_home]/webapps/axis2/WEB-INF/conf/axis2.xml
该文件中有这样一行代码:
deployerextension="
.class"
directory="
pojo"
class="
org.apache.axis2.deployment.POJODeployer"
/>
.class的后缀文件放在目录pojo目录下。
2、测试这个WebService的方法
复制上面的HelloWorldService的链接地址,然后带上方法名称和参数值即可测试调用是否成功。
如下:
8080/axis2/services/HelloWorldService/sayHello?
name=jack
8080/axis2/services/HelloWorldService这个是WebService的地址
/sayHello是方法名称,?
name=jack是参数名称和值
在浏览器中输入上面的地址后,可以看到如下效果:
可以看到返回值,和方法名称。
ns:
sayHelloResponse是方法名称,所有的方法名称后都会带上Response,后面的ns当然是当前方法所在的类的包名了,这里没有package就是默认的axis2的域名。
同样,getAge方法,也是一样的调用方法。
8080/axis2/services/HelloWorldService/getAge?
i=22
结果如下:
3、下面我们看下客户端调用代码的编写,代码如下:
packagecom.hoo.service;
importjavax.xml.namespace.QName;
importorg.apache.axis2.AxisFault;
importorg.apache.axis2.addressing.EndpointReference;
importorg.apache.axis2.client.Options;
importorg.apache.axis2.rpc.client.RPCServiceClient;
HelloWorldService客户端调用代码
*@createDate2011-1-7下午03:
55:
05
*@fileHelloWorldClient.java
publicclassHelloWorldClient{
publicstaticvoidmain(String[]args)throwsAxisFault{
//RPCServiceClient是RPC方式调用
RPCServiceClientclient=newRPCServiceClient();
Optionsoptions=client.getOptions();
//设置调用WebService的URL
Stringaddress="
8080/axis2/services/HelloWorldService"
EndpointReferenceepf=newEndpointReference(address);
options.setTo(epf);
/**
*设置将调用的方法,:
//ws.apache.org/axis2是方法
*默认(没有package)命名空间,如果有包名
*就是:
//包名倒过来即可
*sayHello就是方法名称了
*/
QNameqname=newQName("
//ws.apache.org/axis2"
"
sayHello"
);
//指定调用的方法和传递参数数据,及设置返回值的类型
Object[]result=client.invokeBlocking(qname,newObject[]{"
jack"
},newClass[]{String.class});
System.out.println(result[0]);
qname=newQName("
getAge"
result=client.invokeBlocking(qname,newObject[]{newInteger(22)},newClass[]{int.class});
如果你了解或是看过axis1.x的WebService,这里的客户端调用代码比较简单,有部分关键注释,这里就不多加赘述。
值得注意的是axis2的WebService客户端调用的返回对象是一个Object的数组,这点和axis1.x有很大不同。
我们一般拿数组的第一个值,转换强转即可。
三、复杂对象类型的WebService
1、这次我们编写复杂点的WebService方法,返回的数据是我们定义属性带getter、setter方法JavaBean,一维数组、二维数组等。
看代码:
importjava.io.File;
importjava.io.FileOutputStream;
importjava.io.IOException;
importdata.User;
复杂类型数据的WebService:
字节数组、返回一维int数组、二维String数组及自定义JavaBean对象等
*@createDate2011-1-13下午03:
34:
52
*@fileComplexTypeService.java
*@package
*@emailhoojo_@12
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- axis2WebService 开发 指南
![提示](https://static.bdocx.com/images/bang_tan.gif)