之前有一篇讲过通过java自带的生成客户端代码
http://www.jianshu.com/p/63956df1775b
但是有个问题,就是文件多,复杂,如果webservice多了 ,会造成文件混乱,而axis就很好的解决这个问题,只有一个***Stub文件。
下载AXIS2
链接
http://axis.apache.org/axis2/java/core/download.cgi
其中bin的是我们需要运行的代码,src是源码,war是怎么发布axis2到服务器上的,pulgin则是一些idea软件的插件
下载完后,我们打开可以看到有多个文件夹,其中bin文件夹是脚本,.bat是win的脚本,.sh是linux和mac的脚本,我们就是使用这些脚本来生成我们的wsdl客户端代码的。
配置AXIS2
我用的mac,需要配置JAVA_HOME就行了。
具体是在
http://www.cnblogs.com/iOS-mt/p/5726380.html
按照步骤可以配置好,我记录一下操作
- usr目录下没有. bash_profile的使用touch .bash_profile
- vi .bash_profile 编辑. bash_profile文件
- 写入代码
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
CLASSPAHT=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH:
export JAVA_HOME
export CLASSPATH
export PATH
- 退出编辑:wq (先control+c)
- 环境变量生效 source .bash_profile
编译生成客户端代码
贴代码
(定位到刚才解压的axis的目录下或者直接进入bin目录)/axis2-1.7.4/bin/wsdl2java.sh -uri http://ip:port/sap/bc/srt/wsdl/flv_10002A111AD1/bndg_url/sap/bc/srt/rfc/sap/zcs_ws003/300/zcs_ws003/zcs_ws003?sap-client=300 -p client -s -o stub
-p 是生成的包名
-o 是生成的文件夹名称
利用生成的代码访问远程webservice
由于我们的sap必须要用户认证,不多说,看网址
http://blog.csdn.net/coolcoffee168/article/details/50058363
在生辰搞得***Stub文件下定位到populateAxisService();populateFaults(); 下,然后加上权限的代码,OK😄
记录一下代码
***Stub源码
...
HttpTransportProperties.Authenticator auth = new HttpTransportProperties.Authenticator();
auth.setUsername("****");
auth.setPassword("*****");
service._serviceClient.getOptions().setProperty(HTTPConstants.AUTHENTICATE, auth);
...
Main函数
ZTIHOSQStub service = new ZTIHOSQStub();
ZEMALL121 params = new ZEMALL121();
ZEMALL121Response response = service.zEMALL121(params);
System.out.println(response.getEV_TYPE());
System.out.println(response.getEV_MESG());
庆祝👍
网友评论