快速上手指南基于Eclipse Axis2 插件的Web Service开发Word文档下载推荐.docx
《快速上手指南基于Eclipse Axis2 插件的Web Service开发Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《快速上手指南基于Eclipse Axis2 插件的Web Service开发Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。
工具都已经准备齐全了。
我们来动手做一个小例子来小试牛刀!
这一节我们先利用axis2来发布一个webservice的服务,然后在下一节我们做一客户端来调用这个服务。
我们的服务很简单的,就是输入一个字符串,然后打印出一段字符串。
代码很简单,主要是测试用。
Java代码
1.package
com.deltaj.server;
2.
3.public
class
SimpleServer
{
4.
5.
/**
6.
*
简单的测试方法
7.
8.
*/
9.
public
String
simpleMethod(String
name)
10.
return
name
+
"
Say
this
is
a
Simple
method
^-^"
;
11.
}
12.
13.}
packagecom.deltaj.server;
publicclassSimpleServer{
/**
*简单的测试方法
*
*/
publicStringsimpleMethod(Stringname){
returnname+"
SaythisisaSimplemethod^-^"
}
}
主要的过程就是如何利用axis2的eclispe插件来发布这个服务啦。
1。
在eclispe的packageExplorer中点击右键,在菜单中选择新建--->
other...----->
Axis2ServiceArchiver
2.然后点击next进入了类选择页面,在这个页面中的Class
FileLocation选择框中选择类所在的文件夹。
3.点击next之后进入了选择wsdl文件,这里我们选择skipwsdl。
4.点击next之后,进入的是选择jar文件的页面,这里我们没有外部的jar,所以点击next直接跳过这个页面。
4.点击next之后,进入的是选择xml页面,这里我们选择的是自动生成xml,也就是勾选
Generatetheservicexmlautomatically这一项
5.点击next之后,进入的是生成xml文件的页面,在servicename里填写这个服务所起的名字,这里我起名为simpleServer,然后在classname中填写要发布的类,这里一定要写全路径,写好后就可以点击load按钮,
如果一切ok的话,你会看到如下画面
6点击next后,进入的是输出artiver文件的页面,先要在outputFile
location中选择要输出的路径,
在output
FileName中输入artiver文件的名称。
我起的名字是simpleServer
7.点击finish,如果看到如下的画面,恭喜你,服务发布成功啦。
8.接下来,我们就可以把这个aar文件放入tomcat中发布,首先把生成的aar文件拷贝到tomcat目录中的axis2项目的service目录中位置如图。
9.接下来启动tomcat,在地址栏中输入http:
8080/axis2
你会看到axis2的欢迎画面
10.点击Service连接,你会看到发布的服务列表。
这里面就能看到我们发布的simpleService
11.点击我们的服务simpleServer的连接,我们会看到。
至此,服务发布成功。
axis2创建webservice(三)
这节我们就来写一个客户端来调用一下这个服务。
主要关注一下如何用elispe的axis2的插件来生成stub代码。
1.在eclispe的packageExplorer中点击右键,在菜单中选择新建--->
Axis2CodeGenerator
2.点击next,进入下一个页面,选择从wsdl文件来产生java文件。
3.点击next,然后选择wsdl文件,注意此处要填写上一节我们
4.点击next,进入设置页面,这里我们就用默认的设置。
5.
点击next,选择输出文件的路径。
6.点击next,如果看到这个页面,恭喜你已经生成代码成功。
7.在packageExplorer中刷新一下项目,然后你发现出现2个新的文件SimpleServerStub和SimpleServerCallbackHandler。
打开SimpleServerStub你会惊喜的发现。
著名的小红叉一个接一个的这是因为没有axis2的类包。
我们可以在下载的axis2-1.4.1-bin中找到lib包,把其中的jar都加入我们的工程中。
然后重新编译一下工程,这时我们发现SimpleServerStub还是有几个小红叉。
这个是因为这个插件有个小bug。
生成的代码没有实现序列化方法。
我们可以自己来加上,在小红叉上点一下,弹出一个小菜单,选择Addunimplementedmethods.
8.
1./**
调用发布的服务。
3.
5.public
SimpleClient
static
void
main(String[]
args)
throws
Exception{
//初始化桩文件
SimpleServerStub
stub
=
new
SimpleServerStub();
//初始化SimpleMethod方法。
SimpleServerStub.SimpleMethod
request
SimpleServerStub.SimpleMethod();
13.
//调用simpleMethod的setName方法。
14.
request.setName("
zt"
);
15.
//
16.
System.out.println(stub.simpleMethod(request).get_return());
17.
18.
19.
20.}
/**
*调用发布的服务。
*
*/
publicclassSimpleClient{
publicstaticvoidmain(String[]args)throwsException{
//初始化桩文件
SimpleServerStubstub=newSimpleServerStub();
SimpleServerStub.SimpleMethodrequest=new
SimpleServerStub.SimpleMethod();
//
如果一切正常,你就会看到结果
log4j:
WARNNoappenderscouldbefoundforlogger(org.apache.axis2.description.AxisService).
WARNPleaseinitializethelog4jsystemproperly.
ztSaythisisaSimplemethod^-^。
调用服务成功。
这是个简单的例子,下节我们再做一个复杂一点的例子,来更好的学习axis2
axis2创建webservice(四)
webservice
WebBeanlog4jEclipseQQ
上节我们做了一个简单的例子,调用的服务里的方法只是简单返回一个字符串,这次我们要做一个复杂点的例子,调用服务里的方法返回一个javaBean对象。
1.首先做一个简单的javabean,代码如下
Persion
//
姓名
private
name;
年龄
int
age;
getName()
setName(String
this.name
getAge()
20.
21.
setAge(int
age)
22.
this.age
23.
24.
25.}
publicclassPersion{
//姓名
privateStringname;
//年龄
privateintage;
publicStringgetName(){
returnname;
publicvoidsetName(Stringname){
this.name=name;
publicintgetAge(){
returnage;
publicvoidsetAge(intage){
this.age=age;
2.做一个服务,里面只发布一个方面,这个方法返回这个bean。
BeanServer
testMethod(String
name,
persion
Persion();
persion.setName(name);
persion.setAge(age);
persion;
15.}
publicclassBeanServer{
publicPersiontestMethod(Stringname,intage){
Persionpersion=newPersion();
persion.setName(name);
persion.setAge(age);
returnpersion;
3.按照第二节的做法,把这个服务发布出来。
4.同样按照第三节的方法,用这个wsdl来生成stub代码。
5.然后我们开始做一个方法来调用一下这个服务。
com.deltaj.client;
3.import
com.deltaj.server.TestServerStub;
BeanClient
初始化桩文件
TestServerStub
TestServerStub();
初始化TestMethod方法。
TestServerStub.TestMethod
TestServerStub.TestMethod();
设置bean的属性值。
delta
request.setAge(20);
System.out.println("
The
is:
+stub.testMethod(request).get_return().getName());
age
+stub.testMethod(request).get_return().getAge());
19.}
packagecom.deltaj.client;
importcom.deltaj.server.TestServerStub;
publicclassBeanClient{
publicstaticvoidmain(String[]args)throwsException{
//初始化桩文件
TestServerStubstub=newTestServerStub();
//初始化TestMethod方法。
TestServerStub.TestMethodrequest=newTestServerStub.TestMethod();
//设置bean的属性值。
request.setName("
delta"
request.setAge(20);
//
System.out.println("
Thenameis:
Theageis:
6.如果按照这里说的做的话,你会看到
delta
20