Ошибка при тестировании проекта BPEL

Запуск Netbeans 6.5.1 с OpenESB (Glassfish-full-installer-windows2.1).

Я использую это руководство (http://www.youtube.com/watch?v=a76RxkzB4Bg) в качестве ссылки для управления веб-службами путем вызова локального WSDL, который вызывает внешний 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:

Любые идеи?


person the_marcelo_r    schedule 24.12.2012    source источник


Ответы (2)


Ваш процесс кажется правильным (на первый взгляд). Похоже, ваш процесс не может найти запрашиваемую вами услугу:

BPCOR-6130: Имя действия — Invoke1 — причина: код состояния HTTP 404: не найдено — не найдено

Ваш «мыльный адрес» в wsdl, который вы импортировали, правильный? Вы пытались перегрузить URL-адрес в сопоставлении bpel? (Свойства -> SOAP HTTP BC -> Исходящий -> UR)

В вашем CASA также есть что-то странное: если вы пытаетесь использовать «localCreditCard_WSDLPort» и выставлять в OpenESB «casaPort1», привязка SOAP инвертируется. Стрелка должна начинаться с casaPort1 и заканчиваться на localCreditCard_WSDLPort.

Я надеюсь, что это может помочь вам,

Саймон

person Simon STEINMETZ    schedule 24.12.2012
comment
Спасибо за ваш ответ, я дважды проверил адрес Soap во внешнем документе WSDL, он правильный. Кроме того, что касается моей Composite Application Service Assembly, я не могу соединить компоненты так, как вы описали. У вас есть рабочий проект, который вы можете отправить мне? - person the_marcelo_r; 24.12.2012
comment
Он терпит неудачу прямо здесь... он не может найти веб-службу по какой-то причине, почему? ‹invoke name=Invoke1 partnerLink=externalCreditCard_WSDL operation=ValidateCardNumber xmlns:tns=webservicex.net portType=tns:CCCheckerSoap inputVariable =ValidateCardNumberIn outputVariable=ValidateCardNumberOut/› - person the_marcelo_r; 24.12.2012

Согласно @brasseld с www.open-esb.net

На самом деле, вы сделали две ошибки:

  • Во-первых, для вашего модульного теста вы должны использовать хороший WSDL, полученный из BPEL, потому что вы создали конкретный SOAP WSDL (CreditCard_WSDL.wsdl).
  • Затем, когда вы создаете новый порт в своем составном приложении для вашей plnk externalServiceCard_WSDL, вы должны установить местоположение мыльного адреса, щелкнув правой кнопкой мыши > свойства. По умолчанию для него установлено значение localhost:${HttpDefaultPort}/compositeapp/casaportX?wsdl, поэтому вы сталкиваетесь со своими ошибками (ошибка 404 или неверный URL-адрес).

Основываясь на его предложениях, я решил задокументировать процесс разработки шаг за шагом, вот результат:

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

person Community    schedule 30.12.2012