2024年5月5日发(作者:vivox5手机参数配置)
ABAP发布Webservice以及JAVA调用方式
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的地址 逻辑端口也用如此方法创建 JAVA调用ABAP发布的Webservice 1. 调用过程中存在问题及解决办法 1.1 无法利用AXIS2, CXF标准工具解析 ECC发布的地址。 解决: 利用IE访问Webservice地址,然后将其另存为*.xml文件 利用CXF工具,编译该*.xml 文件,生成JAVA类。 输入:wsdl2java -d src - client Webservice。。。。。。。 附加:wsdl2java用法: wsdl2java -p com -d src -all -p 指定其wsdl的命名空间,也就是要生成代码的包名: -d 指定要产生代码所在目录 -client 生成客户端测试web service的代码 将文件拷贝到程序中。 注意问题: 1. 类文件中的 包名 需要修改,部分定义的-包.类-格式中的包也需要 修改. 2. 工具生成类的过程中,如果出现重名的情况(例如某类:TEST,但是有其他类 应该是 test,大小写不区分),一般只会保存一个类,需要手工添加缺少的类(可 从其他代码的报错信息看出)。 1.2 访问权限问题: 访问的权限体现在http的体系中 不同的调用方式,拥有不同的设置权限方法,以CXF为例: 需要在解析后的**client类中添加代码: Client client = ent(port); HTTPConduit http = (HTTPConduit) duit(); AuthorizationPolicy auth = new AuthorizationPolicy(); rName(""); sword("654321"); horization(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.1 MC例子 生成包mc_style 类:YTESTSERVICE.*. 类中包含:ABAP发布的方法,传入的参数等。 ervice(****); 2. 侯志宇提供的方法。 _ytestService_flag = "X"; 如果flag设置为X,表示存储,如果是““,表示查询。 _ytestService_flagDelete = ""; 如果delete=X,删除表中数据。 r _ytestService_sum = null; 如果sum = null,查询表中所有数据。 如果sum = 200,表示查询表中200条数据 _fZservice _ytestService_yserviceVal = null; 传入的参数:具体类型和结构参照对应的类
发布者:admin,转转请注明出处:http://www.yc00.com/num/1714870747a2530512.html
评论列表(0条)