一.webservice服务端demo
1.下载axis2-1.6.2-war.zip,解压后将axis2.war放入tomcat,启动,访问http://127.0.0.1:8080/axis2,进入欢迎页面,表明axis2可用.
axis2-1.6.2-war.zip下载地址:
http://download.youkuaiyun.com/detail/luoke626/92475152.新建一个webproject,取名为MyAxisDemo
3.新建一个类:
package com.sidney.bj;
public class MyWebserviceTest {
//测试代码
public String infoMes(String responseStr){
return "-----webservice------>"+responseStr+"<---";
}
}
3.将解压后axis2的WEB-INF目录下services,modules,conf文件夹复制到项目WEB-INF下面,并将lib下的jar包拷贝到项目lib中
4.修改web.xml,在xml中加入配置信息:
<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
5.在services文件下增加TestService\META-INF文件夹,在这个文件夹里增加services.xml添加配置信息:
<?xml version="1.0" encoding="UTF-8"?>
<service name="myFirstWebservice">
<description>MyFirst WebService Example</description>
<parameter name="ServiceClass">com.sidney.bj.MyWebserviceTest</parameter>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>
</service>
6.将项目添加到tomcat,启动后访问网址http://127.0.0.1:8080/MyAxisDemo/services/myFirstWebservice?wsdl,访问成功,服务端就已经部署好了
二.webservice客户端demo:
1.新建WebServiceClientTest.java
package com.sidney.bj.client;
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;
import org.junit.Test;
public class WebServiceClientTest {
//webservice接口地址
public String WEBSERVICE_URL = "http://127.0.0.1:8080/MyAxisDemo/services/myFirstWebservice?wsdl";
//测试方法
@Test
public void myClientTest(){
String callSoapenvWebService = new WebServiceClientTest().callSoapenvWebService("infoMes", "传入的数据");
System.out.println(callSoapenvWebService);
}
/**
* 调用webservice的接口
* @param methodName
* @param requestXml
* @return
*/
public String callSoapenvWebService(String methodName, String requestXml) {
try {
return callSoapenvWebService(WEBSERVICE_URL, new Object[]{requestXml}, methodName);
} catch (AxisFault axisFault) {
axisFault.printStackTrace();
return "";
}
}
public String callSoapenvWebService(String url, Object[] params, String methodName) throws AxisFault {
RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
EndpointReference targetEPR = new EndpointReference(url);
options.setTo(targetEPR);
//webservice调用webservice---
options.setAction(methodName);
//---
Class[] classes = new Class[]{String.class};
//QName是webservice的命名空间,可以在wsdl上面看到
QName opAddEntry = new QName("http://bj.sidney.com", methodName);
return (String) serviceClient.invokeBlocking(opAddEntry, params, classes)[0];
}
}
2.启动服务,测试方法,如下图显示则客户端调用成功.