Dándole vuelta a la tuerca, ahora estoy intentando de conectar un cliente Perl como el siguiente con un servicio web Java probado con un cliente Java y funcionando. El servicio Java crea automáticamente el archivo WSDL, así que asumimos que lo crea correctamente y lo probamos con un cliente Java ( que no viene al caso ya que la idea es probar el Perl como cliente, pero confirmo que funciona bien ) :
Cliente Perl:
use SOAP::Lite +trace => [qw(debug)];
my $result ;
print "Connecting to Hello Service...\n";
my $client = SOAP::Lite->service( 'http://localhost:8080/primerawebenjava/NewWebService?WSDL');
print $result = $client->nombre();
La función es “nombre” .
A simple vista el cliente Perl no da más respuesta, que “Connecting to Hello Service...
“; poniendo el debug da el siguiente detalle que no logro entender dónde está el problema… para realizar la interconexión.
Script Output :
Executing file : C:\clientehelloajava.pl
SOAP::Transport::HTTP::Client::send_receive: POST http://localhost:8080/primerawebenjava/NewWebService HTTP/1.1
Accept: text/xml
Accept: multipart/*
Accept: application/soap
Content-Length: 684
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://primerservicio/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><tns:nombre xsi:nil="true" /></soap:Body></soap:Envelope>
SOAP::Transport::HTTP::Client::send_receive: HTTP/1.1 500 Internal Server Error
Connection: close
Date: Mon, 23 May 2011 07:45:50 GMT
Server: GlassFish Server Open Source Edition 3.1
Content-Type: text/xml;charset=utf-8
Client-Date: Mon, 23 May 2011 07:11:13 GMT
Client-Peer: 127.0.0.1:8080
Client-Response-Num: 1
Client-Transfer-Encoding: chunked
X-Powered-By: Servlet/3.0 JSP/2.2 (GlassFish Server Open Source Edition 3.1 Java/Sun Microsystems Inc./1.6)
<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope"><faultcode>S:VersionMismatch</faultcode><faultstring>Couldn't create SOAP message. Expecting Envelope in namespace http://schemas.xmlsoap.org/soap/envelope/, but got http://schemas.xmlsoap.org/wsdl/soap/ </faultstring></S:Fault></S:Body></S:Envelope>
Use of uninitialized value $result in print at C:\clientehelloajava.pl line 5.
Connecting to Hello Service...