Problemas con Servicios Web en WebSphere 5.0 (este es el bueno)

pimpollo
06 de Agosto del 2004
Hola.

Tengo un problema al utilizar un servicio web generado automáticamente con WebSphere 5.0. Me ha generado bien el proxy y un ejemplo y yo he generado manualmente otro ejemplo. En todos los casos cuando invoco al rprouter el mensaje SOAP que envío es este:

POST /PruebaServiciosWeb/servlet/rpcrouter HTTP/1.0
Host: localhost:9080
Content-Type: text/xml; charset=utf-8
Content-Length: 519
SOAPAction: ""

<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<ns1:suma xmlns:ns1="http://tempuri.org/servicios.contenedorServicios" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<operando1 xsi:type="xsd:int">3</operando1>
<operando2 xsi:type="xsd:int">4</operando2>
</ns1:suma>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

y lo que recibo es este error:

HTTP/1.1 500 Internal Server Error
Server: WebSphere Application Server/5.0
Set-Cookie: JSESSIONID=0000Y0LDT2431C2TVCS33WG2OFY:-1;Path=/
Cache-Control: no-cache="set-cookie,set-cookie2"
Expires: Thu, 01 Dec 1994 16:00:00 GMT
Content-Type: text/xml; charset=utf-8
Content-Length: 524
Content-Language: es-ES
Connection: close

<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Server</faultcode>
<faultstring>service &apos;http://tempuri.org/servicios.contenedorServicios&apos; unknown</faultstring>
<faultactor>/PruebaServiciosWeb/servlet/rpcrouter</faultactor>
</SOAP-ENV:Fault>

</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

En el proxy que me ha generado automáticamente la líneas que están relacionadas con este error son:

String targetObjectURI = "http://tempuri.org/servicios.contenedorServicios";
call.setTargetObjectURI(targetObjectURI);

Yo supongo que es un tema de namespaces, pero estoy bastante perdido.

Gracias.