zoukankan      html  css  js  c++  java
  • WebService核心文件【server-config.wsdd】详解及调用示例

     WebService核心文件【server-config.wsdd】详解及调用示例

    作者:Vashon 

    一、准备工作

    导入需要的jar包:

                                                                                   

    二、配置web.xml

    在web工程的web.xml中添加如下配置:

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. <servlet>  
    2.         <servlet-name>AxisServlet</servlet-name>  
    3.         <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>  
    4.         <load-on-startup>15</load-on-startup>  
    5.     </servlet>     
    6.     <servlet-mapping>  
    7.         <servlet-name>AxisServlet</servlet-name>  
    8.         <url-pattern>/services/*</url-pattern>  
    9.     </servlet-mapping>  


     

    三、配置server-config.wsdd文件

    在WEB-INF下添加WebService核心文件server-config.wsdd:

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <deployment xmlns="http://xml.apache.org/axis/wsdd/"  
    3.     xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">  
    4.     <globalConfiguration>  
    5.          <!-- 变量设定 -->  
    6.         <parameter name="sendMultiRefs" value="true" />  
    7.         <parameter name="disablePrettyXML" value="true" />  
    8.         <parameter name="adminPassword" value="admin" />  
    9.         <parameter name="attachments.Directory"  
    10.             value="D:myprojectcalileoxxxWebContentWEB-INFattachments" />  
    11.         <parameter name="dotNetSoapEncFix" value="true" />  
    12.         <parameter name="enableNamespacePrefixOptimization" value="true" />  
    13.         <parameter name="sendXMLDeclaration" value="true" />  
    14.         <parameter name="attachments.implementation"  
    15.             value="org.apache.axis.attachments.AttachmentsImpl" />  
    16.         <parameter name="sendXsiTypes" value="true" />  
    17.         <requestFlow>  
    18.             <handler type="java:org.apache.axis.handlers.JWSHandler">  
    19.                 <parameter name="scope" value="session" />  
    20.             </handler>  
    21.             <handler type="java:org.apache.axis.handlers.JWSHandler">  
    22.                 <parameter name="scope" value="request" />  
    23.                 <parameter name="extension" value=".jwr" />  
    24.             </handler>  
    25.         </requestFlow>  
    26.     </globalConfiguration>  
    27.     <handler name="LocalResponder"  
    28.         type="java:org.apache.axis.transport.local.LocalResponder" />  
    29.     <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper" />  
    30.     <handler name="Authenticate"  
    31.         type="java:org.apache.axis.handlers.SimpleAuthenticationHandler" />  
    32.   
    33.     <!-- 核心重点:服务发布,name:表示发布的service名 -->  
    34.     <service name="SjrkkService" provider="java:RPC">  
    35.         <!-- 发布的service接口类 -->  
    36.         <parameter name="className" value="com.xxx.ws.SjrkkService" />  
    37.     </service>  
    38.   
    39.     <transport name="http">  
    40.         <requestFlow>  
    41.             <handler type="URLMapper" />  
    42.             <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler" />  
    43.         </requestFlow>  
    44.         <parameter name="qs:list"  
    45.             value="org.apache.axis.transport.http.QSListHandler" />  
    46.         <parameter name="qs:wsdl"  
    47.             value="org.apache.axis.transport.http.QSWSDLHandler" />  
    48.         <parameter name="qs.list"  
    49.             value="org.apache.axis.transport.http.QSListHandler" />  
    50.         <parameter name="qs.method"  
    51.             value="org.apache.axis.transport.http.QSMethodHandler" />  
    52.         <parameter name="qs:method"  
    53.             value="org.apache.axis.transport.http.QSMethodHandler" />  
    54.         <parameter name="qs.wsdl"  
    55.             value="org.apache.axis.transport.http.QSWSDLHandler" />  
    56.     </transport>  
    57.     <transport name="local">  
    58.         <responseFlow>  
    59.             <handler type="LocalResponder" />  
    60.         </responseFlow>  
    61.     </transport>  
    62. </deployment>  


     

    四、测试WSDL

    在浏览器输入:http://localhost:8080/xxx/services/SjrkkService?wsdl      //xxx和server-config.wsdd文件中的xxx一致,访问结果如下:

    五、调WebService

    [java] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. /** 
    2.      * 调用webservice的方法. 
    3.      * @param url wsdl链接 
    4.      * @param method 调用的接口 
    5.      * @param idCard 传入的参数 
    6.      * @return 
    7.      * @throws Exception 
    8.      */  
    9.     private String getWebServiceResult( String url, String method, String idCard) throws Exception{  
    10.         String rtnXml = null;  
    11.         try {  
    12.             String endpoint = url;  
    13.             Service service = new Service();  
    14.             Call call = (Call) service.createCall();  
    15.           
    16.             call.setTargetEndpointAddress(new java.net.URL(endpoint));  
    17.             call.setOperationName(method);  
    18.           
    19.             rtnXml = (String) call.invoke(new Object[]{idCard});  
    20.               
    21.               
    22.         } catch (Exception e) {  
    23.             e.printStackTrace();  
    24.         }   
    25.         return rtnXml;  
    26.     }  


     

     备注:调用结果就不演示了,到这里读者应该明白是怎么调了。

  • 相关阅读:
    SpringBoot实现原理
    常见Http状态码大全
    forward(转发)和redirect(重定向)有什么区别
    1094. Car Pooling (M)
    0980. Unique Paths III (H)
    1291. Sequential Digits (M)
    0121. Best Time to Buy and Sell Stock (E)
    1041. Robot Bounded In Circle (M)
    0421. Maximum XOR of Two Numbers in an Array (M)
    0216. Combination Sum III (M)
  • 原文地址:https://www.cnblogs.com/ywx-vashon/p/5452893.html
Copyright © 2011-2022 走看看