Axis2与sap的webservice调用接口指南

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Axis2与sap的webservice调用接口指南
1、设置环境变量
AXIS2_HOME = D:\JAVA\axis2\axis2-1.6.2
2、下载工具:(1.6.2生成的代理类存在BUG,建议用1.5.1版本)
Eclipse:/downloads/
Tomcat:/
Axis:/axis2/java/core/download.cgi
axis2-war:/axis2/java/core/tools/index.html
axis2-eclipse-codegen-plugin:/axis2/java/core/tools/index.html
axis2-eclipse-service-plugin:/axis2/java/core/tools/index.html
安装JDK不用多说了吧。

3、安装Eclipse插件:
axis2-eclipse-codegen-plugin和axis2-eclipse-service-plugin是Eclipse的插件,分别解压在Eclipse的根目录就可以了。

注意:Axis2 1.6.2有个BUG,需要添加两个额外的Jar放在eclipse\dropins目录下:org.apache.axis2.eclipse.codegen.plugin_0.0.0.SNAPSHOT.jar
org.apache.axis2.eclipse.service.plugin_0.0.0.SNAPSHOT.jar
下载地址:
https:///content/groups/snapshots/org/apache/axis2/axis2.eclipse.serv ice.plugin/SNAPSHOT/
https:///content/groups/snapshots/org/apache/axis2/axis2.eclipse.cod egen.plugin/SNAPSHOT/
4、在SAP端发布Webservice(之前我写过相关文档,发布Web服务的细节这里就不在赘
述了)
5、得到WSDL文件的地址,并保存为本地文件以wsdl作为文件扩展名
http://r3ids01:8000/sap/bc/srt/wsdl/bndg_534F90D9B51D4480E10080000A3F001C/wsdl1 1/allinone/ws_policy/document?sap-client=800
6、在eclispe 的package Explorer 中点击右键,在菜单中选择新建--->other--->Axis2 Code
Generator
7、点击next,进入下一个页面,选择从wsdl文件来产生java文件。

8、点击next,然后选择wsdl文件,注意此处选之前保存到本地的WSDL地址
9、点击next,进入设置页面,这里我们就用默认的设置。

10、点击next,选择输出文件的路径。

11、点击finish,如果看到这个页面,恭喜你已经生成代码成功。

注意:有时候SAP发布的Web服务的WSDL文件中Policy节点无法识别,此时在WSDl 文件中将其注释即可:
12、已经生成代理类源码
13、在Eclipse中新建项目,将生成的这两个加载源码里,你会惊喜的发现,著名的小
红叉一个接一个的,这是因为没有axis2的类包。

我们可以在下载的axis2-1.6.2-bin中找到lib包,把其中的jar都加入我们的工程中。

有可能还是少Jar包,就在 找吧。

然后重新编译一下工程,这时我们发现SimpleServerStub还是有几个小红叉。

这个是因为这个插件有个小bug。

生成的代码没有实现序列化方法。

我们可以自己来加上,在小红叉上点一下,弹出一个小菜单,选择Add unimplemented methods。

14、编写调用的代码
运行并返回结果
大功告成
测试类代码
package mc_style.functions.soap.sap.document.sap_com;
import java.rmi.RemoteException;
import org.apache.axis2.Constants.Configuration;
import org.apache.axis2.transport.http.HTTPConstants;
import org.apache.axis2.transport.http.HttpTransportProperties;
publicclass ServiceTest {
//用axis2-eclipse-codegen-wizard生成Java代码,不能解析WSDl文件的Policy 节点,需要手工删掉Policy节点
publicstaticvoid main(String[] args) throws RemoteException { ServiceStub stub = new ServiceStub();
//设置用户名密码
HttpTransportProperties.Authenticator basicAuth = new HttpTransportProperties.Authenticator();
basicAuth.setUsername("hh_zhaowei");
basicAuth.setPassword("zhaowei");
stub._getServiceClient().getOptions().setProperty(HTTPConstants.A UTHENTICATE, basicAuth);
stub._getServiceClient().getOptions().setProperty(Configuration.C HARACTER_SET_ENCODING, "GBK");
stub._getServiceClient().getOptions().setTimeOutInMilliSeconds(30 0 * 1000);
stub._getServiceClient().getOptions().setProperty(Configuration.H
TTP_METHOD, HTTPConstants.HTTP_METHOD_POST);
ServiceStub.ZwfmTest01 in = new ServiceStub.ZwfmTest01();//输入
ServiceStub.ZwfmTest01Response out = new
ServiceStub.ZwfmTest01Response();//输出
in.setInput("zhaow");//设置输入数据
out = stub.zwfmTest01(in);//调用
System.out.println(out.getOutput());//接收返回结果
}
}。

相关文档
最新文档