使用OpenESB运行Netbeans 6.5.1(Glassfish-full-installer-windows2.1)。
我正在使用本教程(http://www.youtube.com/watch?v=a76RxkzB4Bg)作为参考,通过调用调用外部WSDL(http://www.webservicex.net/CreditCard.asmx?WSDL)的本地WSDL来编排Web服务。我准备好了BPEL
我创建了Composite Application,它会自动将SOAP调用从我的本地WSDL绑定到BPEL(Consumer to Producer),我不得不拖放另一个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:
任何想法?
答案 0 :(得分:1)
您的工艺接缝是正确的(初看起来)。 看起来您的流程找不到您要求的服务:
BPCOR-6130:活动名称为Invoke1 - 引起:HTTP状态代码404:未找到 - 未找到
您导入的wsdl中的“肥皂地址”是否正确? 您是否尝试在bpel映射中重载url? (属性 - &gt; SOAP HTTP BC - &gt; Outbound - &gt; UR)
您的CASA中还有一些内容:如果您尝试使用“localCreditCard_WSDLPort”并在OpenESB“casaPort1”中公开,则SOAP绑定将被反转。箭头应从casaPort1开始,并在localCreditCard_WSDLPort处完成。
我希望这可以帮到你,
西蒙
答案 1 :(得分:1)
来自www.open-esb.net的@brasseld
事实上,你犯了两个错误:
- 第一个,对于您的单元测试,您必须使用来自BPEL的优秀WSDL,因为您已经创建了一个具体的SOAP WSDL (CreditCard_WSDL.wsdl)。
- 然后,当您在plnk externalServiceCard_WSDL的复合应用程序中创建新端口时,您必须设置soap地址 右键单击位置&gt;属性。默认情况下,此设置为 localhost:$ {HttpDefaultPort} / compositeapp / casaportX?wsdl这就是为什么 您遇到错误(404或错误的网址错误)。
根据他的建议,我决定逐步记录开发过程,结果如下: