SAP和Java系统的Webservice实例

简介

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

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

 

一、SAP系统间的Webservice调用

 

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

function z_calculate.

*"----------------------------------------------------------------------

*"*"Local interface:

*"  IMPORTING

*"     VALUE(NUMBER1) TYPE  STRING

*"     VALUE(NUMBER2) TYPE  STRING

*"     VALUE(OPERATOR) TYPE  STRING

*"  EXPORTING

*"     VALUE(RESULT) TYPE  STRING

*"----------------------------------------------------------------------

  try .

      case operator.

        when '+'.

          result = number1 + number2.

 

        when '-'.

          result = number1 - number2.

 

        when '*'.

          result = number1 * number2.

 

        when '/'.

          result = number1 / number2.

 

        when others.

          result = 'Not supported!'.

      endcase.

 

    catch cx_root.

      result = 'Not supported!'.

  endtry.

 

  condense result.

 

endfunction.

 

把函数发布成Webservice


 


 


 

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

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

  • 12
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
假设我们有一个webservice服务,它提供了一个方法,可以返回两个整数的和。我们的任务是编写一个Java程序,调用这个webservice服务并计算两个数的和。 1. 创建一个Java项目,并在其中添加webservice客户端代码。 2. 在项目中添加webservice服务的WSDL文件,并通过Eclipse中的“Web Services Explorer”工具来检查服务是否可用。 3. 在项目中创建一个Java类来调用webservice服务。我们可以使用Eclipse的“Web Services Client”向导来生成客户端代码。 4. 在Java类中创建一个webservice客户端,指定webservice服务的WSDL文件地址,并调用服务提供的方法。 下面是一个简单Java代码示例,用于调用我们的webservice服务: ```java import java.net.URL; import javax.xml.namespace.QName; import javax.xml.ws.Service; public class CalculatorClient { public static void main(String[] args) throws Exception { URL url = new URL("http://localhost:8080/calculator?wsdl"); QName qname = new QName("http://webservice.example.com/", "CalculatorImplService"); Service service = Service.create(url, qname); Calculator calculator = service.getPort(Calculator.class); int result = calculator.add(10, 20); System.out.println("Result: " + result); } } ``` 在上面的示例中,我们首先创建了一个URL对象,指向我们的webservice服务的WSDL文件地址。然后,我们使用QName对象指定服务的命名空间和服务名称。接下来,我们使用Service类创建一个webservice客户端,并使用我们的Calculator接口获取webservice服务的代理实例。最后,我们使用代理实例调用服务提供的add()方法,并打印结果。 注意,我们在上面的示例中创建了一个Calculator接口,用于访问webservice服务的方法。我们可以通过Eclipse的“Web Services Client”向导自动生成这个接口

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值