I am trying to use a web service developed by another group in the com +pany using Oracle 10AS. Other VS.Net users can use the service, but w +hen I try using SOAP::LITE, I get : SOAP::Transport::HTTP::Client::send_receive: HTTP/1.1 504 Gateway Time +out This running against port 7782. The WSDL file at port 7782 mentions 77 +81. Has anyone experience of this.. <?xml version="1.0" encoding="UTF-8" ?> - <definitions name="PRSReceiveMessageInterface" targetNamespace="http +://com.nandb.pharmacy.ws/PRSReceiveMessageInterface.wsdl" xmlns="http +://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://com.nandb.pharmacy.ws +/PRSReceiveMessageInterface.wsdl" xmlns:xsd="http://www.w3.org/2001/X +MLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> <documentation>WSDL for Service: PRSReceiveMessageInterface, generat +ed by Oracle WSDL toolkit (version: 1.1)</documentation> - <types> <schema targetNamespace="http://com.nandb.pharmacy.ws/PRSReceiveMess +ageInterface.xsd" xmlns:tns="http://com.nandb.pharmacy.ws/PRSReceiveM +essageInterface.xsd" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:x +sd="http://www.w3.org/2001/XMLSchema" /> </types> - <message name="ReceiveMessageOutput"> <part name="output" element="xsd:any" /> </message> - <message name="ReceiveMessageInput"> <part name="param0" element="xsd:any" /> </message> - <portType name="PRSReceiveMessageInterfacePortType"> - <operation name="ReceiveMessage"> <input message="tns:ReceiveMessageInput" /> <output message="tns:ReceiveMessageOutput" /> </operation> </portType> - <binding name="PRSReceiveMessageInterfaceBinding" type="tns:PRSRecei +veMessageInterfacePortType"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style +="document" /> - <operation name="ReceiveMessage"> <soap:operation soapAction="urn:oracle:ReceiveMessage" /> - <input> <soap:body use="literal" namespace="urn:com-nandb-pharmacy-ws-PRSRec +eiveMessageInterface" /> </input> - <output> <soap:body use="literal" namespace="urn:com-nandb-pharmacy-ws-PRSRec +eiveMessageInterface" /> </output> </operation> </binding> - <service name="PRSReceiveMessageInterface"> - <port name="PRSReceiveMessageInterfacePort" binding="tns:PRSReceiveM +essageInterfaceBinding"> <soap:address location="http://psdappweb1.csa.scot.nhs.uk:7781/PRS/P +RSDataRefresh" /> </port> </service> </definitions> Here's my perl script:- use SOAP::Lite +trace; use SOAP::MIME; use Data::Dumper; my $xml = ""; open (FILE, $ARGV[0]); while ( <FILE>){ $xml .= $_; } my $data = SOAP::Data->name( 'msg ')->value($xml)->type( 'xml '); my $soap = SOAP::Lite ->outputxml(1) ->readable(1) ->proxy("http://psdappweb1.csa.scot.nhs.uk:7782/PRS/PRSRegistration") ->uri("urn:oracle:ReceiveMessage") ->on_action(sub { sprintf '"%s"', shift }); my $som = $soap->ReceiveMessage("$data"); exit 0; and here's the output in detail:- SOAP::Serializer::new: () SOAP::Deserializer::new: () SOAP::Parser::new: () SOAP::Lite::new: () SOAP::Transport::HTTP::Client::new: () SOAP::Serializer::envelope: () SOAP::Serializer::envelope: ReceiveMessage SOAP::Data=HASH(0x20fad58) SOAP::Data::new: () SOAP::Data::new: () SOAP::Data::new: () SOAP::Data::new: () SOAP::Data::new: () SOAP::Transport::HTTP::Client::send_receive: HTTP::Request=HASH(0x2104 +11c) SOAP::Transport::HTTP::Client::send_receive: POST http://psdappweb1.cs +a.scot.nhs .uk:7782/PRS/PRSRegistration HTTP/1.1 Accept: text/xml Accept: multipart/* Content-Length: 586 Content-Type: text/xml; charset=utf-8 SOAPAction: "urn:oracle:ReceiveMessage" <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instanc +e" xmlns:S OAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="ht +tp://schem as.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/1999/XMLSc +hema" SOAP -ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > <SOAP-ENV:Body > <namesp1:ReceiveMessage xmlns:namesp1="urn:oracle:ReceiveMessage" > <c-gensym3 xsi:type="xsd:string" >SOAP::Data=HASH(0x20fad58)</c-gensym3></namesp1:ReceiveMessage> +</SOAP-ENV :Body></SOAP-ENV:Envelope> SOAP::Transport::HTTP::Client::send_receive: HTTP::Response=HASH(0x242 +fd08) SOAP::Transport::HTTP::Client::send_receive: HTTP/1.1 504 Gateway Time +out Connection: close Date: Tue, 18 Jan 2005 15:14:33 GMT Server: NetCache appliance (NetApp/5.5R6D15) Content-Length: 283 Content-Type: text/html Client-Date: Tue, 18 Jan 2005 15:14:35 GMT Client-Peer: 164.134.80.80:3128 Client-Response-Num: 1 Title: 504 Gateway Timeout <HTML> <HEAD><TITLE>504 Gateway Timeout</TITLE></HEAD> <BODY> <H1>Gateway Timeout</H1> <H4> The following error occurred:<P> [code=GATEWAY_TIMEOUT] A gateway timeout occurred. The server is unrea +chable. Re try the request. </H4> <HR> Please contact the administrator. </BODY> </HTML> main::(sendXmlToPRS.pl:24): exit 0;
2005-01-19 Edited by Arunbear: Changed title from 'SOAP::LITE', as per Monastery guidelines
In reply to SOAP::LITE Gateway Timeout by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |