1.下载axis2,下载路径为http://axis.apache.org/axis2/java/core/download.cgi
2.eclipse 下axis2插件安装,解压axis2-eclipse-codegen-plugin-1.7.2和axis2-eclipse-service-plugin-1.7.2,将解压文件plugins下的jar文件复制到eclipse/plugins下,重启eclipse,选择“File->New->Other”可以找到下面的这些Wizards,这些将是本文中用到的很重要的工具
图1
3.部署axis2到tomcat下,将axis2-1.7.2-war解压下的axis2.war文件复制到tomcat/webapps下,启动tomcat,在浏览器中输入http://localhost:8080/axis2/
图2
4.eclipse下新建一个用户库,命名为”axis2”,将axis2/lib下的jar包均添加进来。
图3
图4
5.新建一个java-project,命名为“ITMS-WS”, 将axis2用户库加入到build path中。
图5
图6
图7
6.现在开始编写要发布的WebSevice,在src中新建一个包com.odin.itms.service,类如下:
package com.odin.itms.service;
public class HelloWorld {
public String sayHello(String name){return "Hello, "+name+".";}
public String saySorry(String name){return "Sorry,"+name+".";}
public String getWorld(){return "Hello,World";}
}
在META-INF下建立services描述文件services.xml如下:(注:此文件可不建立,如未简历,则在下面的发布jar包的过程中 可选图-11步骤,图-12忽略;如建立了,则图-11跟图-12步骤任选其一)
<service name="ITMS-WS">
<parameter name="ServiceClass"
locked="false">com.odin.itms.service.HelloWorld</parameter>
<operation name="sayHello">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
<operation name="saySorry">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
<operation name="getWorld">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
</service>
7.打包要发布的service, Eclipse中New --> File --> Other --> Axis2 wizards -->
Axis2 Services Archiver,按照向导选择刚建立的类编译后的class文件和services.xml文件。
图8
图9
图10
图11
图12
图13
图14
完成保存成功,然后修改后缀为aar(也可不修改),将其拷贝到Tomcat 6.0/webapps/axis2/WEB-INF/services目录下,重新打开http://localhost:8080/axis2/services/listServices就会发现ITMS-WS已经发布成功,现在就可以应用这个Web服务了。
图15
8. 生成客户端,Eclipse中New --> File --> Other --> Axis2 wizards --> Axis2 Code Generator,按向导通过java source文件,即AccoutOper.class生成WSDL文件。这步其实可以省略,当webservice发布后可通过访问http://localhost:8080/axis2/services/ITMS-WS?wsdl就可以得到wsdl文件,然后根据此URL就可以生成客户端代码,这里主要想演示一下用Axis2 Code Generator工具根据java source文件如何生成WSDL文件。
图16
图17
图18
图19
9. 通过WSDL文件生成HelloWorldCallbackHandler.java和HelloWorldStub.java,可以重新建立Project,我在做的过程中为了方便仍利用刚才建立的Project
1》、New --> File --> Other --> Axis2 wizards --> Axis2 Code Generator
图20
2》、选择Generate Java source code from a WSDL file,按下一步
图21
图22
图23
图24
图25
注:客户端也需要加入用户库的依赖,否则会提示错误