天天看點

spring + axis2 開發webservice

項目包結構:jar包之類的直接copy進去,重複的去掉。

spring + axis2 開發webservice

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