文档章节

Java通过Axis2调用SAP的Webservice

zkool
 zkool
发布于 2016/11/23 14:22
字数 768
阅读 199
收藏 1
点赞 0
评论 0

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
海淀
程序员
Android调用Axis、Axis2、Cxf发布的web service

在Android中调用axis2发布web service过程中一直报http500错误,axis2 web service是用eclipse插件生成的,发现直接打包成war包或直接在eclipse运行,Android调用的时候会报错,一定要打包成...

yuewawa ⋅ 05/04 ⋅ 0

使用JDBC操作SAP云平台上的HANA数据库

本文假设您对JDBC(Java Database Connectivity)有最基本的了解。您也可以将其同ADBC(ABAP Database Connectivity)做对比,细节请参考我的博客ADBC and JDBC 这篇文章分为两部分,第一部分内容...

JerryWang_SAP ⋅ 05/19 ⋅ 0

axis2开发webservice(1)

开发webservice之前要先看一眼什么是webservice,并且了解一下webservice的概念。 SOAP SOAP(Simple Object Access Protocol),关于SOAP教程:http://www.w3school.com.cn/soap/index.asp l...

1880106122065705 ⋅ 2010/10/18 ⋅ 0

Netweaver和CloudFoundry是如何运行Web应用的?

Netweaver 在Jerry的微信公众号文章SAP Fiori应用的三种部署方式里提到SAP Fiori应用以BSP应用的方式部署在ABAP Front-End Server上。那么这些BSP应用在运行时为什么能够接受和发送HTTP请求呢...

JerryWang_SAP ⋅ 06/16 ⋅ 0

JDBC + SAP云平台 = 运行在云端的数据库应用

在前一篇文章JPA + EclipseLink + SAP云平台 = 运行在云端的数据库应用我介绍了如何通过JPA和EclipseLink操作部署在SAP云平台上的HANA数据库实例。 在这篇文章里,我们使用JDBC代替JPA和Ecl...

JerryWang_SAP ⋅ 05/05 ⋅ 0

使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise

最近Jerry接到一个原型开发的任务,需要在微信里调用ABAP On Premise系统(SAP CRM On-Premise)里的某些函数。具体场景和我之前的公众号文章 Cloud for Customer和微信集成系列教程 描述的场...

JerryWang_SAP ⋅ 06/02 ⋅ 0

SAP云平台以微服务的方式提供了Document的CRUD(增删改查)操作。该微服务基于标准的CMI

SAP云平台以微服务的方式提供了Document的CRUD(增删改查)操作。该微服务基于标准的CMIS协议(Content Management Interoperability Service)。 同标准的CMIS相比,SAP云平台的Document Servic...

JerryWang_SAP ⋅ 05/05 ⋅ 0

使用Java程序消费SAP Leonardo的机器学习API

以sap leonardo作为关键字在微信上搜索,能搜到不少文章。但是我浏览了一下,好像没有发现有从具体编程角度上来介绍的。所以我就贡献一篇。 需求 开发一个Java程序,用户可以指定一张图片,该...

JerryWang_SAP ⋅ 05/19 ⋅ 0

阿里获邀加入 JCP ,参与制定 Java 全球标准和技术规范

2018年5月17日,作为唯一中国代表,阿里巴巴获邀加入 Java 全球管理组织 Java Community Process (JCP) 的最高执行委员会。此次获得执行委员会席位,让中国企业首次加入到 Java 全球标准的制...

王练 ⋅ 05/17 ⋅ 5

《Spring技术内幕》学习笔记18——Spring使用Hessian实现远程调用

Spring目前提供了对RMI、 HttpInvoker、Hessian、Burlap及WebService等Remoting技术的集成。Spring屏蔽了这些实现技术的差异,用户只需开发简单的Java对象(Plain Old Java Objects,POJO)然后...

谜男amu ⋅ 05/16 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

VS2015配置并运行汇编(一步一步照图做)【vs2017的链接在最后】

x64: TITLE Add and Subtract (AddSub.asm) ; This program adds and subtracts 32-bit integers. ; Last update: 2/1/02 ;.MODEL flat,stdcall x64 not su......

simpower ⋅ 昨天 ⋅ 0

一起读书《深入浅出nodejs》-node模块机制

node 模块机制 前言 说到node,就不免得提到JavaScript。JavaScript自诞生以来,经历了工具类库、组件库、前端框架、前端应用的变迁。通过无数开发人员的努力,JavaScript不断被类聚和抽象,...

小草先森 ⋅ 昨天 ⋅ 0

Java桌球小游戏

其实算不上一个游戏,就是两张图片,不停的重画,改变ball图片的位置。一个左右直线碰撞的,一个有角度碰撞的。 左右直线碰撞 package com.bjsxt.test;import javax.swing.*;import j...

森林之下 ⋅ 昨天 ⋅ 0

你真的明白RPC 吗?一起来探究 RPC 的实质

你真的明白RPC 吗?一起来探究 RPC 的实质 不论你是科班出身还是半路转行,这么优秀的你一定上过小学语文,那么对扩句和缩句你一定不陌生。缩句就是去除各种修饰提炼出一句话的核心,而不失基...

AI9o後 ⋅ 昨天 ⋅ 0

z-index设置失效?

今天碰到了一个问题,就是在给li设置提示框的时候,有用到遮罩效果,本来想把对应的出现在最顶层,可是不管将li设置的z-index值设为多大,li都没有出现在遮罩层之上。 我在网上查了z-index设...

IrisHunag ⋅ 昨天 ⋅ 0

CyclicBarrier、CountDownLatch以及Semaphore使用及其原理分析

CyclicBarrier、CountDownLatch以及Semaphore是Java并发包中几个常用的并发组件,这几个组件特点是功能相识很容易混淆。首先我们分别介绍这几个组件的功能然后再通过实例分析和源码分析其中设...

申文波 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部