axis2发布服务WebService和生成客户端Client.docx
- 文档编号:30607098
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:17
- 大小:637.85KB
axis2发布服务WebService和生成客户端Client.docx
《axis2发布服务WebService和生成客户端Client.docx》由会员分享,可在线阅读,更多相关《axis2发布服务WebService和生成客户端Client.docx(17页珍藏版)》请在冰豆网上搜索。
axis2发布服务WebService和生成客户端Client
一、准备工作
1.下载axis2相关jar包目前最新版本为1.6.2;将axis2-1.6.2-bin.rar,axis2-1.6.2-war.zip一并下载下来,下载地址:
http:
//axis.apache.org/axis2/java/core/download.cgi
2.下载axis2插件:
axis2-eclipse-codegen-plugin-1.6.2.zip、axis2-eclipse-service-plugin-1.6.2.zip,下载地址:
http:
//axis.apache.org/axis2/java/core/tools/index.html
3安装Eclipse插件,安装成功如下图:
5.新建WebProject(axis2_Service)
将axis2-1.6.2-bin\lib下的jar拷贝到axis2_Service\lib下,打开axis2-1.6.2-war.zip\axis2\WEB-INF下的conf、modules、services解压到项目(axis2_Service)WebRoot\WEB-INF下
6.修改web.xml文件,添加如下代码:
7.添加两个类:
bean类和服务类
Bean类:
package.zjl.entity;
importjava.io.Serializable;
publicclassUserimplementsSerializable{
/**
*
*/
privatestaticfinallongserialVersionUID=1L;
privateintid;
privateStringname;
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
}
要发布的服务类:
package.zjl.service;
import.zjl.entity.User;
publicclassUserService{
publicUsergetUser(Useruser){
System.out.println("service:
"+user.getId());
System.out.println("service:
"+user.getName());
Userpo2=newUser();
po2.setId
(1);
po2.setName("zjl");
returnpo2;
}
}
8.Axis2插件工具生成aar文件,发布WebService
在项目上右击->new->other
选择Axis2ServiceArchiver,点击next
ClassFileLocation选择工程路径下的classes文件,点击Next
勾选SkipWSDL项,点击next
这里没有jar文件,所以默认,点击Next
勾选Generatetheservicexmlautomatically项,点击Next
ServiceName随便写记住就行,Classname包名点类名称点击Load会出现这个类下的所有方法名称,点击Next
Outputlocation选择输出文件位置(具体位置根据具体而定),点击Finsh
说明成功。
刷新项目:
项目下多了个UserService.arr文件
9.启动Tomcat,在地址栏输入http:
//localhost:
8080/axis2_service/services/UserService?
wsdl回车,
页面是一些xml配置性东西的内容,说明WebService发布成功
10.新建客户端项目(项目名称:
axis2_client),调用发布的WebService
11.使用axis2插件生成客户端代码
第一种方式:
选择第一个,Next
选择第一个,Next
将能访问的WebService接口复制进去(也可以是一个后缀名为WSDL的文件名,我们在第二种方式在谈)。
点击Next
Codegenoption选择custom,勾选Generatetestcase(勾选此项,会生成测试类,此类需要junit.jar包)。
点击Next
这里我们选择第一个,Outputpath选择项目名,点击Finsh
说明生成客户端成功。
刷新项目会多成几个java类文件,我们修改UserServiceTest.java类
在这个类中添加main方法,将testgetUser方法中的代码添加到Main函数里稍作修改:
publicstaticvoidmain(String[]args)throwsException{
UserServiceTesttest=newUserServiceTest();
.zjl.service.UserServiceStubstub=new.zjl.service.UserServiceStub();//the
.zjl.service.GetUsergetUser6=(.zjl.service.GetUser)test
.getTestObject(.zjl.service.GetUser.class);
Useru=newUser();
u.setId
(1);
u.setName("曾塞燕");
getUser6.setUser(u);
stub.getUser(getUser6);
}
运行后控制台打印:
关掉最右边的双xx,就可以看见如下图,调用WebService成功
第二种方式生成客户端调用WebService:
在axis2_service项目上,生成WSDL,
选择第一个,Next
选择第二个,Next
AddFolder项目路径下的classes,填写FullyQualifiedClassName,点击TestClassloading…没有红叉叉,说明成功,Next
默认值,ServiceName可以自己喜好改,Next
Outputlocation选择要输出的文件位置Finsh
说明成功
然后再客户端项目上(axis2_client)生成调用axis2_Service的WebService,跟第一种方式一样,唯一的区别在于如下图:
将路劲改成,前面我们生成的WSDL文件,如下图:
(这个WSDL文件根据你生成所在的位置而定)
测试UserServiceTest类的main方式时,如果报异常,检查一下
UserServiceStubstub=newUserServiceStub();
点击进去构造的WebService是否正确,如果不正确将其改成正确地址,也可以构造UserServiceStubstub=newUserServiceStub(“http:
//localhost:
8080/axis2_service/services/UserService?
wsdl”);这样子就不会报错了。
12.可以将客户端生成服务(WebService)
13.在axis2_client新建
选择第一个,Next
选择第一个,Next
选择WSDL文件,或者一个发布的WebService地址,Next
为了客户端和服务代码的区别,将Custompackagename改成sitv
勾选Generateserversidecode、Generateadefaultservice.xml、GenerateanInterfaceforSkeleton,Next
Finsh
项目多了sitv包和resources文件,将文件resources下的services.xml和UserService.wsdl文件复制到WebRoot/Web-INF/Services/userService/META-INF下(文件目录手动构建)
修改UserService.wsdl文件
将文件内容最后几段如下代码:
Location默认生成出来的地址不对,我们改成我们具体项目发布的地址:
http:
//localhost:
8080/axis2_client/services/UserService
打开services.xml文件,最前的一段内容如下:
我们将这个class改成具体类所在的包下面:
sitv.UserServiceMessageReciverInout,
修改web.xml文件,在web.xml文件添加如下代码:
启动tomcat,在地址栏输入:
http:
//localhost:
8080/axis2_client/services/UserService?
wsdl页面出现,xml形式的发布WebService内容,配置成功,
Axis2_client的WebService和axis2_service发布的WebService一模一样了。
区别在于axis2_client根据axis2_service发布的wsdl文件发布服务生成的代码不一样(即sitv下的java类就是服务),效果一模一样。
测试:
修改UserServiceSkeleton.java类里的getUser方法,原来代码如下:
修改后如下:
在UserServiceTest类中如下:
将地址改成:
http:
//localhost:
8080/axis2_client/services/UserService?
wsdl
测试如下:
点击最右边的X,如下:
测试成功。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- axis2 发布 服务 WebService 生成 客户端 Client