JAVA 利用axis2或cxf调用ABAP发布的Webservice

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

JA V A 利用axis2或cxf调用ABAP发布的Webservice

1.调用过程中存在问题及解决办法

1.1无法利用AXIS2, CXF标准工具解析ECC发布的地址。

解决:利用IE访问Webservice地址,然后将其另存为*.xml文件

利用CXF工具,编译该*.xml 文件,生成JAVA类。

输入:wsdl2java -d src - client http://Webservice。。。。。。。

附加:wsdl2java用法:

wsdl2java -p com -d src -all aa.wsdl

-p 指定其wsdl的命名空间,也就是要生成代码的包名:

-d 指定要产生代码所在目录

-client 生成客户端测试web service的代码

将文件拷贝到程序中。

注意问题:1. 类文件中的包名需要修改,部分定义的-包.类-格式中的包也需要修改.

2. 工具生成类的过程中,如果出现重名的情况(例如某类:TEST,但是有其他类

应该是test,大小写不区分),一般只会保存一个类,需要手工添加缺少的类(可从其他代码的报错信息看出)。

1.2访问权限问题:

访问的权限体现在http的体系中

不同的调用方式,拥有不同的设置权限方法,以CXF为例:

需要在解析后的**client类中添加代码:

Client client = ClientProxy.getClient(port);

HTTPConduit http = (HTTPConduit) client.getConduit();

AuthorizationPolicy auth = new AuthorizationPolicy();

auth.setUserName("gang.xu");

auth.setPassword("654321");

h ttp.setAuthorization(auth);

1.3访问地址:

ABAP会发布两种可以访问的WSDL地址;

第一种:

:8000/sap/bc/srt/rfc/sap/ytest_se

rvice/300/ytest_service/ytest_service

第二种:

:8000/sap/bc/srt/wsdl/bndg_DF511834C4CA61F18306002

21999201E/wsdl11/allinone/ws_policy/document?sap-client=300

JAVA解析及调用的是第二种地址;第一种发布出的Webservice服务,具体的方法

等信息在第二种体现,2中,也包含了1的地址:

location=":8000/sap/bc/srt/rfc/sap/ytest_ service/300/ytest_service/ytest_service" />

1.4调用方法

根据生成的**client类,可以找到方法名,需要传入的参数等信息。

参数类型也会根据WEBSERVICE的发布,自动解析为某个类文件。

具体的方法需要具体分析。

1.4.1MC例子

生成包mc_style

类:YTESTSERVICE.*.client.java

类中包含:ABAP发布的方法,传入的参数等。

Port.ytestservice(****);

2.侯志宇提供的方法。

ng.String _ytestService_flag = "X";

如果flag设置为X,表示存储,如果是““,表示查询。

ng.String _ytestService_flagDelete = "";

如果delete=X,删除表中数据。

ng.Integer _ytestService_sum = null;

如果sum = null,查询表中所有数据。

如果sum = 200,表示查询表中200条数据

com.bireturn.mc.mc_style.TableOfZservice

_ytestService_yserviceVal = null;

传入的参数:具体类型和结构参照对应的类

ABAP发布Webservice

一、输入se37或者se80创建WEBSERVICE

二、Webservice创建成功后,输入事务代码SOAMANAGER

注意:WINDOWS 中需要配置host 文件

三、选择第二个也签中的第一个连接

单击Open WSDL document for selected binding连接弹出:WSDL的地址

location=":8000/sap/bc/srt/rfc/sap/zws_s ervic/300/zws_servic/zws_servic" />

LOCATION 或者ACTION后的地址则是外部调用Webservice的地址

逻辑端口也用如此方法创建

相关文档
最新文档