javax.xml.soap.SOAPException: java.security.PrivilegedActionException:oracle.j2ee.ws.saaj.ContentTypeException: Not a valid SOAP Content-Type: text/html; charset=UTF-8 ó javax.xml.soap.SOAPException: Message send failed: Premature EOF
Es común que al invocar servicios desde BPEL PM se generen éstos tipos de respuestas por una falla del lado del servicio o bien por causas mismas del flujo (time outs).
En un par de clientes en los que he estado trabajando últimamente se presentó este caso, siendo diferente la causa en cada uno de ellos.
En un primer caso sucede porque el Enpoint del WS que estás consumiendo, está mal escrito o simplemente es una ubicación inexistente. Esto provoca que el HTTP Server te conteste diciendo que el contenido es un text/HTML, pues efectivamente la ubicación al no existir, es como si pusieras una URL inválida en un navegador y éste te contestara un HTML con el error.
Por otro lado, cuando sale:
<summary>
exception on JaxRpc invoke: HTTP transport error:
javax.xml.soap.SOAPException: java.security.PrivilegedActionException:
javax.xml.soap.SOAPException: Message send failed: Premature EOF
encountered
</summary>
Puede ser por una cuestión de timeout. En procesos largos que hacen varias invocaciones hacia una misma ubicación de HTTP, bien puede suceder que la sesión en el Web server se vea vencida, y por lo tanto cualquier otro request te retorne ese error.
Para solucionar ésto, se sugiere agregar la siguiente opción en el inicio de la JVM:
<data id="java-options" value="-server -XX:MaxPermSize=128M -Xms2048M -Xmx2048M -DHTTPClient.disableKeepAlives=true ... />
Esto aplica para la versión: Oracle SOA Suite 10g (10.1.3)
Con esto evitarás que el HTTP Server haga un reset de la sesión. En casos cuando pasas por LoadBalancers, ésto puede ser típico (gracias Toño y Daniel).
Publicar un comentario