項目包結構:jar包之類的直接copy進去,重複的去掉。
service.xml的配置(注意結構) <?xml version="1.0" encoding="UTF-8"?> <serviceGroup> <service name="AllWebService"> <description>logisticsAllWebServiceInterface:Spring POJO Axis2 Service Sample</description> <parameter name="ServiceClass">com.zsxh.logistics.service.webservice.AllService</parameter> //接口類 <parameter name="ServiceObjectSupplier"> org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier </parameter> <parameter name="SpringBeanName">allWebService</parameter> // spring管理的類的id。 <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> </messageReceivers> </service> </serviceGroup>
axis2-web檔案夾下面listServices.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ page import="org.apache.axis2.Constants, org.apache.axis2.description.AxisOperation, org.apache.axis2.description.AxisService, java.util.Collection, java.util.HashMap, java.util.Iterator" %><html> <head><title>List Services</title> <style> h2{margin:20 0 5 0;} ul{margin-top:5;} </style> </head> <body> <h1>Available services</h1> <% HashMap serviceMap = (HashMap) request.getSession().getAttribute(Constants.SERVICE_MAP); Collection servicecol = serviceMap.values(); if(servicecol.size()==0){%>Available services is Empty.<%} for (Iterator iterator = servicecol.iterator(); iterator.hasNext();) { AxisService axisService = (AxisService) iterator.next(); Iterator opItr = axisService.getOperations(); String serviceName = axisService.getName(); %> <h2><font color="blue"><a href="<%=serviceName %>?wsdl" target="_blank" rel="external nofollow" target="_blank"><%=serviceName%></a></font></h2> <i>Available Operations</i> <ul> <% while (opItr.hasNext()) { AxisOperation axisOperation = (AxisOperation) opItr.next(); %><li><%=axisOperation.getName().getLocalPart()%></li><% } %> </ul> <% } %> </body> </html>
web。xml增加 <!-- axis2 servlet begin --> <servlet> <display-name>Apache-Axis2</display-name> <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**/services/listServices能看到你的項目中有什麼webservice接口。
String address = "http://localhost:8888/logistics/services/AllWebService"; EndpointReference target = new EndpointReference(address); RPCServiceClient serviceClient = new RPCServiceClient(); Options options = serviceClient.getOptions(); options.setTo(target); // 掃描流水号 // QName opGetWeather = new QName("http://****","cgInfo"); // // Object[] opGetWeatherArgs = new Object[]{"c001g00120100728100001"}; // Class[] returnType = new Class[]{CGInfo.class}; // Object[] response = serviceClient.invokeBlocking(opGetWeather, opGetWeatherArgs, returnType); // CGInfo ret = (CGInfo) response[0]; // if(ret == null){ // System.out.println(" has no record"); // }else{ // System.out.println(ret.getClient()); // System.out.println(ret.getGoodsName()); // System.out.println(ret.getSpec()); // System.out.println(ret.getBatchNum()); // System.out.println(ret.getOddNum()); // } 如何調用webservice接口做測試。
版權聲明:本文為CSDN部落客「daerduochen」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。
原文連結:https://blog.csdn.net/daerduochen/article/details/83925391