zoukankan      html  css  js  c++  java
  • ◆◆0SAP Webservice实例教程

    1, webservice简介

    关于Webservice的概念和原理,简单来讲,Webservice是一种基于SOAP传输协议,用WSDL描述,用XML封装数据的接口技术。由于其跨平台、跨防火墙、开发成本低、开发周期短等优势而被广泛应用,但也有局限性,包括传输负载大、没有统一的实现模型等。

    对于Webservice在SAP系统中的应用,多被用在系统同步要求高,数据传输负载小的接口开发上。下面以SAP系统和外部系统的交互为例,SAP ECC系统两个、外部系统一个(Java EJB3 Jboss5),分别讲述从SAP到SAP,SAP到Java,Java到Java,Java到SAP的Webservice实例。

    2, SAP系统间的Webservice调用

    SE37创建函数z_calculate,类型要设置为RFC类型,参数都设置为传值:

    代码如下:

    把函数发布成Webservice

    其他一路下来默认,完成后服务已经创建;接下来到SOAMANAGER中去找WSDL的URL,进入到Web service Administration界面,

    Apply selection => Overview =>  Displayselected Binding's WSDL URL,在右边可以看到了。

    接下来去SICF中找到服务的Endpoint地址

    在浏览器中会得到地址:

    下面进入到Webservice的Client端SAP系统,SE80创建代理类:

    在URL栏位输入上面的WSDL的URL

    激活代理类,然后LPCONFIG创建逻辑端口:

    在URL栏位输入上面的Endpoint的URL

    保存后激活,然后回到SE80 测试代理类:

    已经成功的正确返回结果。也可以以代码的方式访问:

    执行结果:

    3, SAP系统调用EJB服务

    准备好Eclipse的Java EE版、JDK1.5、Jboss5.0、Axis2。进入eclipse配置JRE和Jboss如下:

    接下来创建一个EJB3的项目:

    创建一个接口:

    创建一个它的实现类:

    部署到Jboss上:

    WSDL的地址组合方式为:http:// + 应用服务器地址 + 端口 + 项目名 + 类名 + "?WSDL"

    即:http://localhost:8080/EJB001/CalculatorImpl?WSDL

    根据此WSDL在SAP端创建代理类,配置方式跟SAP到SAP类似,只是在Lpconfig里面的URL也用当前的WSDL的URL。

    保存激活后,返回到SE80测试:

    结果如下:

    ABAP代码的访问同SAP到SAP,这里不再演示。

    4, SAP系统到Java系统

    第一步中已经发布了一个SAP系统的webservice,要用到的两个地址,

    WSDl地址:http://ecc.dev.jsepc.com.cn:8002/sap/bc/srt/wsdl /bndg_4E49EDE9E05800A2E1008000C0A80106/wsdl11/allinone/ws_policy/document?sap-client=200

    Endpoint地址:http://ecc.dev.jsepc.com.cn:8002/sap/bc/srt/rfc/sap/zsap_calculate/200/zsap_calculate/zsap_calculate?sap-client=200

    用Axis2的WSDL2Java工具,把上面的WSDL地址转化为Java类:

    执行完后,能看到生成的类:

    下面创建一个Java Project,写一个webservice的客户端

    把生成的SRC下面的东西复制到当前项目的SRC下面:

    导入后,刷新,发现有错误,这是因为还没有导入Axis2的jar包,依次导入:

    然后写一个Client类,代码如下:

    给stub类的地址是上面提到的Endpoint地址,即SAP中SICF下测试服务的URL地址。

    执行webservice调用,结果如下:

    5, EJB系统到Java系统

    java中访问webservice的方法有很多种,包括Stub方式、RPC方式、CXF方式等等,

    下面还是以基于Axis2引擎的Stub方式实现:

    上面已经发布了一个EJB的Webservice实例,

    WSDL:http://localhost:8080/EJB001/CalculatorImpl?WSDL

    同上,通过WSDL2JAVA 解析为本地类,然后编写客户端,代码如下:

    运行结果如下:

    以上。

  • 相关阅读:
    2017.10.25总结与回顾
    2017.10.24总结与回顾
    CSS盒子模型
    2017.10.23学习知识总结回顾及编写新网页
    JAVA与mysql之间的编码问题
    想写好代码,送你三个神器
    Vue+highligh.js实现语法高亮(转)
    Vue.JS实现复制到粘帖板功能
    npm install、npm install --save与npm install --save-dev区别(转)
    ES7与ES8新特性
  • 原文地址:https://www.cnblogs.com/lvdong18847870057/p/12555458.html
Copyright © 2011-2022 走看看