• 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.     }  


     

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

  • 相关阅读:
    正则表达式匹配整数和小数
    解决任务计划程序未启动任务,因为相同任务的实例正在运行的问题
    ActiveMQ 消息持久化到数据库(Mysql、SQL Server、Oracle、DB2等)
    C# CLR20R3 程序终止的几种解决方案
    彻底消除wine中文乱码,QQ,kugoo等等....
    Fedora如何添加第三方软件源?
    [转]Fedora 下安装NVIDIA显卡驱动(使用后无法进入图形界面)
    向fedora添加rpmfusion源
    [转]Java 8 Optional类深度解析(null处理)
    [转载]深入理解Java 8 Lambda
  • 原文地址:https://www.cnblogs.com/ywx-vashon/p/5452893.html
Copyright © 2020-2023  润新知