3

使用 OpenESB (Glassfish-full-installer-windows2.1) 运行 Netbeans 6.5.1。

我使用本教程 ( http://www.youtube.com/watch?v=a76RxkzB4Bg ) 作为通过调用调用外部 WSDL ( http://www.webservicex.net/ CreditCard.asmx?WSDL)。我已经准备好我的 BPEL

在此处输入图像描述

并且我创建了复合应用程序,它自动将 SOAP 调用从我的本地 WSDL 绑定到 BPEL(消费者到生产者),我必须拖放另一个 SOAP 对象并使用与我的本地 WSDL 相同的接口对其进行配置,以接收来自调用动作(正确吗?)。

在此处输入图像描述

当我从本地 WSDL 中选择操作运行测试用例时,我得到以下 SoapResponse:

<SOAP-ENV:Fault>
      <faultcode xmlns="">SOAP-ENV:Server</faultcode>
      <faultstring xmlns="">BPCOR-6135: A fault was not handled in the process scope; Fault Name is {http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/ErrorHandling}systemFault; Fault Data is &a....Sending errors for the pending requests in the process scope before terminating the process instance</faultstring>
      <faultactor xmlns="">sun-bpel-engine</faultactor>
      <detail xmlns="">
        <detailText>BPCOR-6135: A fault was not handled in the process scope; Fault Name is {http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/ErrorHandling}systemFault; Fault Data is &a... Sending errors for the pending requests in the process scope before terminating the process instance
   Caused by: BPCOR-6131: An Error status was received while doing an invoke (partnerLink=externalBPELImplementation, portType={http://www.webservicex.net}CCCheckerSoap, operation=ValidateCardNumber)
BPCOR-6129: Line Number is 37
BPCOR-6130: Activity Name is Invoke1
   Caused by: HTTP Status-Code 404: Not Found - Not Found</detailText>
      </detail>

我创建了一个单独的项目来测试外部 WSDL,它正在按预期验证信用卡号,我的 BPEL 或我的复合应用程序有问题。

如果我创建另一个测试用例并选择当我将 Soap 对象拖放到 Comp 中时创建的本地端口。应用程序。设计界面,我得到一个不同的错误:

Dec 24, 2012 12:54:11 AM com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection call
SEVERE: SAAJ0006: Bad URL (endPoint instance of String)
java.net.MalformedURLException: no protocol:

有任何想法吗?

4

2 回答 2

1

您的流程接缝是正确的(乍一看)。看起来您的进程找不到您要求的服务:

BPCOR-6130:活动名称为 Invoke1 - 原因:HTTP 状态代码 404:未找到 - 未找到

您导入的 wsdl 中的“肥皂地址”是否正确?您是否尝试过重载 bpel 映射中的 url?(属性 -> SOAP HTTP BC -> 出站 -> UR)

您的 CASA 中还有一些问题:如果您尝试使用“localCreditCard_WSDLPort”并在 OpenESB“casaPort1”中公开,则 SOAP 绑定是相反的。箭头应从 casaPort1 开始并在 localCreditCard_WSDLPort 结束。

我希望这可以帮助你,

西蒙

于 2012-12-24T08:44:15.800 回答
1

根据来自 www.open-esb.net 的@brasseld

事实上,你犯了两个错误:

  • 第一个,对于您的单元测试,您必须使用来自 BPEL 的良好 WSDL,因为您已经创建了一个具体的 SOAP WSDL (CreditCard_WSDL.wsdl)。
  • 然后,当您在复合应用程序中为您的 plnk externalServiceCard_WSDL 创建一个新端口时,您必须通过右键单击 > 属性来设置肥皂地址位置。默认情况下,此设置为 localhost:${HttpDefaultPort}/compositeapp/casaportX?wsdl 这就是您遇到错误(404 或错误 url 错误)的原因。

根据他的建议,我决定逐步记录开发过程,结果如下:

http://www.youtube.com/watch?v=-1W1xR3-iJQ

于 2012-12-30T13:02:42.723 回答