java調用webservice方法

因爲項目的歷史緣由,webservice服務端是乙方公司開發的,咱們本身開發的系統須要去調用乙方公司的webservice接口。前面用了網上提供的一種方法(非生成代理類),怎麼也調用不成功(也許是由於服務端的wsdl的版本過低),開始還覺得乙方公司接口的問題,後來用.net試了一下,直接調用成功,說明接口沒有問題。java

後來通過思考,仍是採用生成代理類的方法來調用,剛開始用cxf,下載完cxf壓縮包,用wsdl2java.bat生成java代理類,結果直接報錯:WSDLToJava Error:Rpc/encoded wsdls are not supported with CXF,網上一查是由於服務端的wsdl版本太老(服務端是用axis)。web

無奈只好放棄cxf,改用axis,下載axis1.4版本http://mirror.bit.edu.cn/apache/axis/   apache

注意:若是服務端wsdl比較老的話,請下載低版本,不要下載axis2函數

下載完後,在F:\axis-bin-1_4\axis-1_4\lib下建一個如下的bat文件:.net

set Axis_Lib=f:\axis-bin-1_4\axis-1_4\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Axis_Servlet=http://host:5080/xxxx/services/xxxService?wsdl
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -u %Axis_Servlet%

  雙擊以後,該文件,自動生成java的代理類,生成以後,建一個main函數調用:代理

public static void main(String[] args)  throws Exception {
		
		 Object[] pas = new Object[2];
		 pas[0] = "2";

		 pas[1] = "xxxx";
		 MapWebServiceServiceLocator ms = new MapWebServiceServiceLocator();
		 MapWebService client=ms.getMapWebService();
             Object a = client.unsafeInvokeService("方法名", pas);
            System.out.println(a.toString());

	 }

  這樣就能夠調用成功了!!!code

所需的包,pom.xmlxml

   <dependency>
            <groupId>org.apache.axis</groupId>
            <artifactId>axis</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>commons-discovery</groupId>
            <artifactId>commons-discovery</artifactId>
            <version>0.2</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.axis</groupId>
            <artifactId>axis-jaxrpc</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis</groupId>
            <artifactId>axis-saaj</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>wsdl4j</groupId>
            <artifactId>wsdl4j</artifactId>
            <version>1.4</version>
        </dependency>
相關文章
相關標籤/搜索