Java 调用 WebService 客户端代码 含通过代理调用


WebService的调用,常用的大约有3种方式:

    1、使用Axis调用

    2、使用XFire调用

    3、使用CXF调用

    项目中,采用axis进行调用,记录如下,备忘:

    ps:想当年的时候是用的xfire方式调用的,结果没做记录,现在已经完全记不得怎么玩了。所以说要多写博客啊 T_T

   版本说明:

        aixs版本:axis-bin-1_4.zip

        java环境略

    第一步:确保wsdl文件可用,文中为获取到sendSmsService.wsdl,当然url的也行。

    第二步:执行生成客户端代码的脚本。脚本内容为:

set Axis_Lib=D:\axis-1_4\lib

set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%

set Output_Path=.

set Package=info.jyzh.wap.liaoning.push

%Java_Cmd% org.apache.axis.wsdl.WSDL2Java sendSmsService.wsdl -o%Output_Path% -p%Package% -t

 

#查看WSDL2Java的使用帮助#%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -help

 

OK,至此,客户端代码就生成出来了。还带了一个单元测试哦。

 

实际工作中,碰到以下情况,客户端不能直接连上webservice服务器,中间被强大的代理服务器挡住了。如下图:

 

    为此,修改生成的代码,本次是在SendMmsServiceImplServiceSoapBindingStub中作修改,如下:

    static {

            AxisProperties.setProperty("http.proxyHost","88.88.88.88");

            AxisProperties.setProperty("http.proxyPort","8080");

            AxisProperties.setProperty("http.proxyUser","asp\\yy");

            AxisProperties.setProperty("http.proxyPassword","123456");

        _operations = new org.apache.axis.description.OperationDesc[1];

        _initOperationDesc1();

    }

如此,便可以通过代理调用webservice~

相关内容