文档章节

Java通过Axis2调用SAP的Webservice

zkool
 zkool
发布于 2016/11/23 14:22
字数 768
阅读 211
收藏 1

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());//接收返回结果
}

}

本文转载自:http://download.csdn.net/detail/zhaowei0315/7303189

共有 人打赏支持
zkool

zkool

粉丝 48
博文 62
码字总数 17604
作品 0
海淀
程序员
MyEclipse6.0 安装axis2插件, 调用加密的SAP webservice

首先鄙视一下自己,还在用myeclipse,竟然还是6.0版本,没办法,用习惯了,而且自己的开发机配置不高,装过一些别的IDE,发现用的都不是很流畅。 项目要用java调用sap的webservice接口,自己决...

苏文
2013/06/06
0
0
axis helloworld

Axis2创建WebService实例 博客分类: Java综合 WebServiceTomcatApacheWebXML 一、Axis2的下载和安装 1.可从http://ws.apache.org/axis2/ 下载Axis2的最新版本: 可以下载如下两个zip包: ax...

itwriter
2014/08/22
0
0
使用axis2发布web service

Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物。Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebService,同时还支持Spring、JSON等技术。这些都将在后面的...

NotFoundException
2013/03/13
0
0
Axis2创建WebService实例

一、Axis2的下载和安装 1.可从http://ws.apache.org/axis2/ 下载Axis2的最新版本: 可以下载如下两个zip包: axis2-1.5.4-bin.zip axis2-1.5.4-war.zip 其中 axis2-1.5.4-bin.zip文件中包含了...

玄空
2014/02/18
0
0
WebService框架JWS、Axis2、XFire、CXF的区别

1、JWS是Java语言对WebService服务的一种实现,用来开发和发布服务。而从服务本身的角度来看JWS服务是没有语言界限的。但是Java语言为Java开发者提供便捷发布和调用WebService服务的一种途径...

liangyx
2012/12/15
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

php 使用redis锁限制并发访问类

1.并发访问限制问题 对于一些需要限制同一个用户并发访问的场景,如果用户并发请求多次,而服务器处理没有加锁限制,用户则可以多次请求成功。 例如换领优惠券,如果用户同一时间并发提交换领...

豆花饭烧土豆
17分钟前
0
0
Linux环境搭建 | 手把手教你配置Linux虚拟机

在上一节 「手把你教你安装Linux虚拟机」 里,我们已经安装好了Linux虚拟机,在这一节里,我们将配置安装好的Linux虚拟机,使其达到可以开发的程度。 Ubuntu刚安装完毕之后,还无法进行开发,...

良许Linux
18分钟前
0
0
Nginix开启SSL支持HTTPS访问(自签名方法)

Nginix开启SSL支持HTTPS访问(自签名方法) 超文本传输安全协议(缩写:HTTPS,英语:Hypertext Transfer Protocol Secure)是超文本传输协议和SSL/TLS的组合,用以提供加密通讯及对网络服务器...

openthings
34分钟前
0
0
(三)Nginx配置·续

概述 前文写了关于Nginx环境配置,但是还没有完,接下来将会继续讲三个相关的配置 主要是以下三个 1.Nginx访问日志 2.Nginx日志切割 3.静态文件不记录日志和过期时间 Nginx访问日志 1.先看看...

杉下
今天
1
0
jquery创建类似于java的map

var map = {}; // Map map = new HashMap(); map[key] = value; // map.put(key, value); var value = map[key]; // Object value = map.get(key); var has = key in map; // boolean has = ......

SuperDabai
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部