AXIS使用wsdl2java 访问SAP Webservice

之前有一篇讲过通过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
按照步骤可以配置好,我记录一下操作

  1. usr目录下没有. bash_profile的使用touch .bash_profile
  2. vi .bash_profile 编辑. bash_profile文件
  3. 写入代码
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
  1. 退出编辑:wq (先control+c)
  2. 环境变量生效 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()); 

庆祝

你可能感兴趣的:(AXIS使用wsdl2java 访问SAP Webservice)