1. 程式人生 > >java調用webservice方法

java調用webservice方法

void 原因 over ati 要去 下載 apache tor axis

由於項目的歷史原因,webservice服務端是乙方公司開發的,我們自己開發的系統需要去調用乙方公司的webservice接口。前面用了網上提供的一種方法(非生成代理類),怎麽也調用不成功(也許是因為服務端的wsdl的版本太低),開始還以為乙方公司接口的問題,後來用.net試了一下,直接調用成功,說明接口沒有問題。

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

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

註意:如果服務端wsdl比較老的話,請下載低版本,不要下載axis2

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

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());

	 }

  這樣就可以調用成功了!!!

所需的包,pom.xml

   <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>

  

java調用webservice方法