1.使用eclipse创建包如comtestservice
 
2.导包,如果缺jar包http://download.csdn.net/detail/b_xinjun1120/4981900
 
所需包
 
axis2-codegen-0.94.jar
 activation-1.1.jar
 axiom-api-1.2.7.jar
 axiom-impl-1.2.7.jar
 axis2-adb-1.4.1.jar
 axis2-kernel-1.1.jar
 commons-codec-1.3.jar
 commons-httpclient-3.0.1.jar
 commons-logging-1.1.1.jar
 javax_mail.jar
 stax-api-1.0.1.jar
 wsdl4j-1.6.2.jar
 wstx-asl-3.2.0.jar
 XmlSchema-1.4.2.jar
 
3.创建java文件LoginService后编译
 
package com.test.service;
 
import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.context.ServiceContext;
 
public class LoginService {
 ?public boolean login(String userName,String password) {
 ? MessageContext context = MessageContext.getCurrentMessageContext();
 ? ServiceContext ctx = context.getServiceContext();
 ? if ("user".equals(userName) && "123".equals(password)) {
 ?? ctx.setProperty("userName",userName);
 ?? ctx.setProperty("password",password);
 ?? ctx.setProperty("msg","success");
 ?? return true;
 ? }
 ? ctx.setProperty("msg","faild");
 ? return false;
 ?}
 ?}
 
4.进入编译后class的根目录./bin
 
????? 创建META-INF目录
 
????? 在META-INF中建services.xml
 
<?xml version="1.0" encoding="UTF-8"?>
 
<!--?name指定service名称? scope范围application为全局?-->
 <service name="wsdlTest" scope="application">
 ??? <!-- 描述?-->
 
??? <description>
 ???????wsdlTest for Test
 
??? </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.test.service.LoginService</parameter>
 </service>
 
4.命令窗口进入编译后class的根目录./bin打aar包
 
?? 输入:jar -cvf wsdlTest.aar . (wsdlTest.aar后有一空格和“.”代表当前目录)????
 
5.http://download.csdn.net/detail/b_xinjun1120/4981900含有axis2-1.5-war.zip减压到Tomcat 6.0webapps启动Tomcat发布axis2
 
6..将生成的wsdlTest.aar包放入Tomcat 6.0webappsaxis2WEB-INFservices重启tomcat
 
??????查看axis2的发布情况  http://localhost:8080/axis2/services/listServices? 点击wsdlTest 到http://localhost:8080/axis2/services/wsdlTest?wsdl?查看wsdl文件
 
7.可使用soapUI 3.6.1 (http://sourceforge.net/projects/soapui/files/)进行测试 
 
???? file-New soapUI Project -Project Name输入一个名称-Initial WSDL/WADLhttp://localhost:8080/axis2/services/wsdlTest?wsdl?-ok
 
???? 点击Request 1 将两个"?"分别输入user 123 运行(保证tomcat启动)
 
8.客户端的一个实例
 
package com.test.service;
 
import javax.xml.namespace.QName;
 
import org.apache.axis2.AxisFault;
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.client.Options;
 import org.apache.axis2.rpc.client.RPCServiceClient;
 
public class LoginServiceClient {
 ?@SuppressWarnings("unchecked")
 ?public static void main(String[] args) throws AxisFault {
 ??String target = "http://localhost:8080/axis2/services/LoginService";
 ???RPCServiceClient client = new RPCServiceClient();
 ??Options options = client.getOptions();
 ??options.setManageSession(true);
 ??
 ??EndpointReference epr = new EndpointReference(target);
 ??options.setTo(epr);
 ??
 ??QName qname = new QName("http://service.hoo.com","login");
 ???Class[] opreturntype = new class[]{string[].class};
 ??Object[] result = client.invokeBlocking(qname,new Object[] { "admin","123456" },opreturntype);
 ??System.out.println(result[0]);
 ??qname = new QName("http://service.hoo.com","getLoginMessage");
 ??result = client.invokeBlocking(qname,new Object[] { null },new Class[] { String.class });
 ??System.out.println(result[0]);
 ?}
 }
 
查看运行结果与soapui请求的结果对比