Invocando métodos web externos con problemas de BPEL + Apache ODE (llamando .NET ASMX)
-
11-12-2019 - |
Pregunta
pre-info: Estoy aprendiendo a usar la Orquestación de Métodos Web (WM). He completado con éxito las lecciones con culos, invocando métodos web, algún procesamiento paralelo en BPEL. Estoy usando Eclipse Indigo 3.7.1 con complementos BPEL, Tomcat7 Server con Apache Ode como base de orquestación. En el otro lado, necesito aprender llamando a WMS asegurados escritos en la plataforma MONO .NET.
ahora: Ahora estoy teniendo problemas para llamar a cualquier método web. He hecho: 1) El método web que se ejecuta por Mono .NET - Works, se puede probar con el navegador (http:// localhost: 8081 / Hwws.smx) y con Eclipse Tool "Web Services Explorer", funciona bien. 2) Mi BPEL que solo invoca este método web .NET a través del puerto de jabón. 3) En otras stantion de trabajo, he realizado un servicio .NET con Visual Studio. Tal vez tenga errores, si es necesario publicaré un mensaje de texto más tarde.
Problema: Estoy recibiendo errores al invocar.
pantallas: 1) Prueba del navegador de .NET WS HW (HelloWorld) http:// foto -hosting.winsoftmagic .com / 1 / s4nbwdsqib.jpg 2) PRUEBA DE ECLIPSE DE .NET WS HW http://photo-hosting.winsoftmagic.com/ 1 / zywnl2wtgu.jpg 3) Error que recibo http://photo-hosting.winsoftmagic.com/1/ltbexoxcdl. jpg
Listado de errores:
18: 15: 25,294 Advertencia ExternalService Respuesta de falla: EtiquetasType= (Unkown) JABÓN: CLIENTE CERURANDO NINGUNA MENSAJE DE SOAP 18: 15: 25,376 Error Invocar el fracaso durante la invocación: 18: 15: 25,382 Información BPELRUNTIMECONTXTIMPL ActivityRecovery: Registro de la actividad 11, Fallo Motivo: En el canal 21y es un error de tiempo de espera más tarde. Ya he pasado una semana alrededor de estos problemas, buscado con todas las formas en que podía pensar.
Edit 12.03.2012: Ahora, la prueba con Mono WS trabajó por alguna razón. He intentado llamar a WS de Internet y dio el mismo error que tuve en el lugar de trabajo:
14: 25: 16,177 Error [Invoque] Fallo durante la invocaciones: Mensaje de envío de errores (mex= {partnerroleMex # hqejbhcnphr747jefui9ic [pid {http://wsaspx.tns/} inetws-24] llamando a org.apache.de.bpel.ep. Wsaendpoint@1e3a4c7.CheckText (...) Estado Async}): El flujo de entrada para un mensaje entrante es NULL. 14: 25: 16,178 Info [bpelruntimecontextimpl] ActivityRecovery: Registro de la actividad 11, Fallo Motivo: Error al enviar mensaje (mex= {partnerroleMex # hqejbhcnphr747jefui9ic [pid {http://wsaspx.tns/} inetws-24] Llamar a org.apache.de .BPEL.EPR.WSAENDPOINT @ 1E3A4C7.CHECKTEXT (...) ESTADO ASYNC}): El flujo de entrada para un mensaje entrante es nulo. en el canal 21En el mismo tiempo, este servicio funciona desde todos los formularios de prueba.
Editar: 16.03.2012 Mi método mono dejó de funcionar igual que comenzó sin mi comprensión. Tcpmon-1.1.jar muestra dicho mensaje nuevamente:
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
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>
En realidad, obtengo uno de los 3 errores: no se pudo desercializar, el flujo de entrada para un mensaje entrante es nulo o incluso Error 411 ayer :) P.S. tenía 4º error sin conectar ningún zócalo, pero todos ellos desaparecieron .
Mi objetivo principal es SSL + Autorización. Los servicios .NET, estarían agradecidos si tiene ejemplos. ¡Muchas gracias a todos! Es realmente placer ver su ayuda :)
Solución
Thanks to all, testing soap-body shown that it was good and problem was in headers part which had some strange "Chunked" and numbers before xml (length of xml text) and 0 after xml end. I just set http.request.chunk=false and now it work at all my tests yet. For that purpose download sample.endpoint from http://ode.apache.org/endpoint-configuration.html , renamed it as bpel name (MonoCaller.bpel => MonoCaller.endpoint). It has string for chunked already commented. And also added something like http.default-headers.authorization=Basic <64b code of "login:password" made in any coder> for authorization purpose and it also works now! :-]
Otros consejos
The same error has occured with me, the problem was with the web service itself, I had an empty constructor plus the methodes wich causes a problem, the solution is to delete the constructor.