Вызов внешних веб-методов с проблемами BPEL + Apache Ode (вызов .Net asmx) - PullRequest
2 голосов
/ 10 марта 2012

Предварительная информация: Я учусь использовать оркестровку веб-методов (WM).Я успешно завершил уроки с заданиями, вызывая веб-методы, некоторую параллельную обработку в BPEL.Я использую Eclipse Indigo 3.7.1 с плагинами BPEL, сервер Tomcat7 с Apache Ode в качестве основы для оркестровки.С другой стороны, мне нужно научиться называть защищенные WM написанными на платформе Mono .Net.

Имея сейчас: Теперь у меня проблемы с вызовом ЛЮБЫХ веб-методов.Я сделал: 1) Веб-метод, запущенный Mono .Net - работает, может быть протестирован с браузером (http://localhost:8081/hwws.asmx) и с инструментом Eclipse "Web Services Explorer", он работает отлично.2) мой BPEL, который вызывает только этот веб-метод .Net через порт SOAP.3) на другом рабочем месте я сделал .Net сервис с Visual Studio.Если у меня возникнут ошибки, я отправлю текст позже.

Проблема: Я получаю ошибки при вызове.

Экраны: 1) браузерный тест .net WS HW (helloWorld) http: // photo -hosting.winsoftmagic .com / 1 / s4nbwdsqib.jpg 2) Eclipse-тест .netWS HW http://photo -hosting.winsoftmagic.com / 1 / zywnl2wtgu.jpg 3) Я получаю ошибку http://photo -hosting.winsoftmagic.com / 1 / ltbexoxcdl.jpg

Список ошибок:

18: 15: 25,294 WARN ExternalService Ответ об ошибке: faultType = (неизвестно) soap: ClientCould not deserialize Soap message 18: 15: 25,376 ERROR INVOKE Failureво время вызова: 18: 15: 25,382 ИНФОРМАЦИЯ BpelRuntimeContextImpl ActivityRecovery: Регистрация действия 11, причина сбоя: на канале 21

И позже будет выдана ошибка тайм-аута.Я провел неделю вокруг этой проблемы, искал все возможные способы.

РЕДАКТИРОВАТЬ 12.03.2012:

Теперь тест с моно WS работает длянекоторая причина. Я попытался вызвать WS из Интернета, и он выдал ту же ошибку, что и на рабочем месте:
14: 25: 16,177 ОШИБКА [INVOKE] Ошибка при вызове: ошибка при отправке сообщения(mex = {PartnerRoleMex # hqejbhcnphr747jefui9ic [PID {http://wsaspx.tns/}inetWS-24], вызывающий org.apache.ode.bpel.epr.WSAEndpoint@1e3a4c7.checkText (...) Status ASYNC}): входной поток для входящего сообщения является нулевым.14: 25: 16,178 ИНФОРМАЦИЯ [BpelRuntimeContextImpl] ActivityRecovery: регистрация действия 11, причина сбоя: ошибка при отправке сообщения (mex = {PartnerRoleMex # hqejbhcnphr747jefui9ic [PID {http://wsaspx.tns/}inetWS-24], вызывающий org.apache.ode.bpel.epr.WSAEckxte1(...) Статус ASYNC}): входной поток для входящего сообщения равен нулю.на канале 21

В то же время этот сервис работает со всеми тестовыми формами.

Редактировать: 16.03.2012

Мой моно-метод перестал работать так же, какэто началось без моего понимания.TcpMon-1.1.jar снова показывает такое сообщение: </p> <pre><code>POST /hwws.asmx HTTP/1.1 Content-Type: text/xml; charset=UTF-8 SOAPAction: "http://hwws.tps/HelloWorld" User-Agent: Axis2 Host: localhost:8092 Transfer-Encoding: chunked <--- EDITED: REASON OF NOT WORKING ---- 31c <?xml version='1.0' encoding='UTF-8'?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header> <addr:To xmlns:addr="http://www.w3.org/2005/08/addressing">http://localhost:8092/hwws.asmx</addr:To> <addr:Action xmlns:addr="http://www.w3.org/2005/08/addressing">http://hwws.tps/HelloWorld</addr:Action> <addr:ReplyTo xmlns:addr="http://www.w3.org/2005/08/addressing"><addr:Address>http://www.w3.org/2005/08/addressing/anonymous</addr:Address></addr:ReplyTo> <addr:MessageID xmlns:addr="http://www.w3.org/2005/08/addressing">uuid:hqejbhcnphr74k7fapcntd</addr:MessageID> </soapenv:Header> <soapenv:Body><HelloWorld xmlns="http://hwws.tps/"> <s0:st xmlns:s0="http://hwws.tps/">My test message</s0:st> </HelloWorld></soapenv:Body></soapenv:Envelope> 0

</p> <pre><code>HTTP/1.0 500 Internal Server Error Date: Fri, 16 Mar 2012 08:01:50 GMT Server: Mono.WebServer2/0.4.0.0 Unix Connection: close X-AspNet-Version: 4.0.30319 Content-Length: 366 Cache-Control: private Content-Type: text/xml; charset=utf-8 <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body><soap:Fault><faultcode>soap:Client</faultcode> <faultstring>Could not deserialize Soap message</faultstring> </soap:Fault></soap:Body></soap:Envelope>

На самом деле я получаю одну из 3 ошибок: не удалось десериализовать, поток вводадля входящего сообщения вчера ноль или даже ошибка 411 :) Ps имел 4-ю ошибку без подключения к сокету, но все они исчезли .

Моя главная цель - ssl + авторизация .net services- был бы признателен, если у вас есть примеры.Большое спасибо всем!Очень приятно видеть вашу помощь:)

Ответы [ 2 ]

0 голосов
/ 11 апреля 2015

Со мной произошла та же ошибка, проблема была с самим веб-сервисом, у меня был пустой конструктор плюс методы, вызывающие проблему, решение для удаления конструктора .

0 голосов
/ 17 марта 2012

Спасибо всем, тестирование мыльного тела показало, что это хорошо, и проблема была в части заголовков, которая имела странные "Chunked" и числа перед xml (длина текста xml). ) и 0 после окончания xml. Я просто установил http.request.chunk = false и теперь он работает на всех моих тестах. Для этого загрузите sample.endpoint из http://ode.apache.org/endpoint-configuration.html, переименовав его в имя bpel (MonoCaller.bpel => MonoCaller.endpoint). Это строка для chunked уже прокомментирована. А также добавил что-то вроде http.default-headers.authorization = Basic <код 64b «login: password», созданный в любом кодере> для целей авторизации, и это также работает сейчас! : -]

...