webService的調用

1、需要導入的jar包

      wKiom1knlqWiRaMBAAA2YW__ETc615.png-wh_50

2、配置web.xml文件

       

 <servlet>  

        <servlet-name>AxisServlet</servlet-name>  

        <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>  

        <load-on-startup>15</load-on-startup>  

    </servlet>     

    <servlet-mapping>  

        <servlet-name>AxisServlet</servlet-name>  

        <url-pattern>/services/*</url-pattern>  

    </servlet-mapping>  


3、配置server-config.wsdd文件

      server-config.wsdd放在固定目在WEB-INF下,添加WebService核心文件server-config.wsdd:

    

<?xml version="1.0" encoding="UTF-8"?>  

<deployment xmlns="http://xml.apache.org/axis/wsdd/"  

    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">  

    <globalConfiguration>  

         <!-- 變量設定 -->  

        <parameter name="sendMultiRefs" value="true" />  

        <parameter name="disablePrettyXML" value="true" />  

        <parameter name="adminPassword" value="admin" />  

        <parameter name="attachments.Directory"  

            value="D:\myproject\calileo\xxx\WebContent\WEB-INF\attachments" />  

        <parameter name="dotNetSoapEncFix" value="true" />  

        <parameter name="enableNamespacePrefixOptimization" value="true" />  

        <parameter name="sendXMLDeclaration" value="true" />  

        <parameter name="attachments.implementation"  

            value="org.apache.axis.attachments.AttachmentsImpl" />  

        <parameter name="sendXsiTypes" value="true" />  

        <requestFlow>  

            <handler type="java:org.apache.axis.handlers.JWSHandler">  

                <parameter name="scope" value="session" />  

            </handler>  

            <handler type="java:org.apache.axis.handlers.JWSHandler">  

                <parameter name="scope" value="request" />  

                <parameter name="extension" value=".jwr" />  

            </handler>  

        </requestFlow>  

    </globalConfiguration>  

    <handler name="LocalResponder"  

        type="java:org.apache.axis.transport.local.LocalResponder" />  

    <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper" />  

    <handler name="Authenticate"  

        type="java:org.apache.axis.handlers.SimpleAuthenticationHandler" />  

  

   

<!-- 核心重點:服務發佈,name:表示發佈的service名 -->  
    <service name="SjrkkService" provider="java:RPC">  
        <!-- 發佈的service接口類 -->  
        <parameter name="className" value="com.xxx.ws.SjrkkService" />  
    </service>

  

    <transport name="http">  

        <requestFlow>  

            <handler type="URLMapper" />  

            <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler" />  

        </requestFlow>  

        <parameter name="qs:list"  

            value="org.apache.axis.transport.http.QSListHandler" />  

        <parameter name="qs:wsdl"  

            value="org.apache.axis.transport.http.QSWSDLHandler" />  

        <parameter name="qs.list"  

            value="org.apache.axis.transport.http.QSListHandler" />  

        <parameter name="qs.method"  

            value="org.apache.axis.transport.http.QSMethodHandler" />  

        <parameter name="qs:method"  

            value="org.apache.axis.transport.http.QSMethodHandler" />  

        <parameter name="qs.wsdl"  

            value="org.apache.axis.transport.http.QSWSDLHandler" />  

    </transport>  

    <transport name="local">  

        <responseFlow>  

            <handler type="LocalResponder" />  

        </responseFlow>  

    </transport>  

</deployment>  



4、測試wsdl

 

在瀏覽器輸入:http://localhost:8080/xxx/services/SjrkkService?wsdl      //xxx和server-config.wsdd文件中的xxx一致,訪問結果如下:

  



五、調WebService


/** 

     * 調用webservice的方法. 

     * @param url wsdl鏈接 

     * @param method 調用的接口 

     * @param idCard 傳入的參數 

     * @return 

     * @throws Exception 

     */  

    private String getWebServiceResult( String url, String method, String idCard) throws Exception{  

        String rtnXml = null;  

        try {  

            String endpoint = url;  

            Service service = new Service();  

            Call call = (Call) service.createCall();  

          

            call.setTargetEndpointAddress(new java.net.URL(endpoint));  

            call.setOperationName(method);  

          

            rtnXml = (String) call.invoke(new Object[]{idCard});  

              

              

        } catch (Exception e) {  

            e.printStackTrace();  

        }   

        return rtnXml;  

    }

  

// 以前項目調用,  轉載地址: http://www.cnblogs.com/ywx-vashon/p/5452893.html

wKiom1knmkfT8P5TAADCH5Kqo5Q200.png-wh_50



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章