zoukankan      html  css  js  c++  java
  • java调用webservice方法

    由于项目的历史原因,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_4axis-1_4lib下建一个以下的bat文件:

    set Axis_Lib=f:axis-bin-1_4axis-1_4lib
    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>
    

      

  • 相关阅读:
    5
    4
    2
    3
    1
    IOS js交互
    vm安装mac
    索引
    ORM 基础
    reids 日志no
  • 原文地址:https://www.cnblogs.com/Anders888/p/10375777.html
Copyright © 2011-2022 走看看