Java通过Axis2调用SAP的Webservice

1、设置环境变量 AXIS2_HOME = D:\JAVA\axis2\axis2-1.6.2 2、下载工具:(1.6.2生成的代理类存在BUG,建议用1.5.1版本) Eclipse:http://www.eclipse.org/downloads/ Tomcat:http://tomcat.apache.org/ Axis:http://axis.apache.org/axis2/java/core/download.cgi axis2-war:http://axis.apache.org/axis2/java/core/tools/index.html axis2-eclipse-codegen-plugin:http://axis.apache.org/axis2/java/core/tools/index.html axis2-eclipse-service-plugin:http://axis.apache.org/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://repository.apache.org/content/groups/snapshots/org/apache/axis2/axis2.eclipse.service.plugin/SNAPSHOT/ https://repository.apache.org/content/groups/snapshots/org/apache/axis2/axis2.eclipse.codegen.plugin/SNAPSHOT/

4、在SAP端发布Webservice(之前我写过相关文档,发布Web服务的细节这里就不在赘述了)

5、得到WSDL文件的地址,并保存为本地文件以wsdl作为文件扩展名 http://r3ids01:8000/sap/bc/srt/wsdl/bndg_534F90D9B51D4480E10080000A3F001C/wsdl11/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包,就在www.findjar.com 找吧。然后重新编译一下工程,这时我们发现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;

public class ServiceTest {

//用axis2-eclipse-codegen-wizard生成Java代码,不能解析WSDl文件的Policy节点,需要手工删掉Policy节点
public static void 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.AUTHENTICATE, basicAuth);
	stub._getServiceClient().getOptions().setProperty(Configuration.CHARACTER_SET_ENCODING, "GBK");
	stub._getServiceClient().getOptions().setTimeOutInMilliSeconds(300 * 1000);
	stub._getServiceClient().getOptions().setProperty(Configuration.HTTP_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());//接收返回结果
}

}

转载于:https://my.oschina.net/zhk/blog/792861

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 Java Axis2 调用 WebService 接口可以通过以下步骤实现: 1. 下载并安装 Axis2。你可以从官方网站下载安装包,或者从 Maven 中央仓库获取依赖。 2. 创建一个 Java 项目,并将 Axis2 WebService 客户端库添加到项目依赖中。 3. 根据 WebService WSDL 文件生成客户端代码。你可以使用 Axis2 自带的 wsdl2java 工具,在命令行中运行以下命令: ``` wsdl2java -uri <wsdl-url> -p <package-name> -d <output-directory> ``` 其中,`<wsdl-url>` 是 WebService 的 WSDL 文件地址,`<package-name>` 是你想要生成代码的 Java 包名,`<output-directory>` 是生成代码的输出目录。 4. 在你的 Java 代码中创建 WebService 客户端对象,并调用 WebService 方法。例如: ``` MyWebServiceStub stub = new MyWebServiceStub(); MyWebServiceStub.MyWebServiceRequest request = new MyWebServiceStub.MyWebServiceRequest(); request.setParameter("value"); MyWebServiceStub.MyWebServiceResponse response = stub.myWebServiceMethod(request); System.out.println(response.getResult()); ``` 这里的 `MyWebServiceStub` 是在第三步中生成的客户端代码中的类名,`myWebServiceMethod` 是 WebService 的方法名,`MyWebServiceRequest` 和 `MyWebServiceResponse` 是方法的请求和响应对象。 以上就是使用 Java Axis2 调用 WebService 接口的基本步骤。需要注意的是,在实际项目中,你可能还需要处理异常、设置 WebService 的认证和安全等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值