On Tue, Mar 31, 2009 at 18:18, Alan Williams <[email protected]> wrote:

> (net.sf.taverna.t2.activities.wsdl.WSDLActivity:301) - Error invoking
> WSDL service sayHello
> AxisFault
>  faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
>  faultSubcode:
>  faultString: java.net.SocketTimeoutException: Read timed out
>  faultActor:
>  faultNode:
>  faultDetail:
>        
> {http://xml.apache.org/axis/}stackTrace:java.net.SocketTimeoutException:
> Read timed out
>        at java.net.SocketInputStream.socketRead0(Native Method)

When debugging it, it seems to be hanging in trying to receive the response:

Thread 
[net.sf.taverna.t2.workflowmodel.processor.dispatch.events.dispatchjobev...@fb840]
(Suspended)
        SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int)
line: not available [native method]
        SocketInputStream.read(byte[], int, int) line: 129      
        BufferedInputStream.fill() line: 218 [local variables unavailable]      
        BufferedInputStream.read1(byte[], int, int) line: 256   
        BufferedInputStream.read(byte[], int, int) line: 313    
        SocketInputStream(FilterInputStream).read(byte[], int, int) line: 111   
        XMLEntityManager$RewindableInputStream.read(byte[], int, int) line:
not available
        UTF8Reader.read(char[], int, int) line: not available   
        XMLEntityScanner.load(int, boolean) line: not available 
        XMLEntityScanner.skipSpaces() line: not available       
        XMLDocumentScannerImpl$TrailingMiscDispatcher.dispatch(boolean) line:
not available
        
XMLNSDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanDocument(boolean)
line: not available
        XIncludeAwareParserConfiguration(XML11Configuration).parse(boolean)
line: not available
        
XIncludeAwareParserConfiguration(XML11Configuration).parse(XMLInputSource)
line: not available
        SAXParserImpl$JAXPSAXParser(XMLParser).parse(XMLInputSource) line:
not available
        SAXParserImpl$JAXPSAXParser(AbstractSAXParser).parse(InputSource)
line: not available
        SAXParserImpl$JAXPSAXParser.parse(InputSource) line: not available      
        SAXParserImpl(SAXParser).parse(InputSource, DefaultHandler) line: 375   
        DeserializationContext.parse() line: 227        
        SOAPPart.getAsSOAPEnvelope() line: 696  
        Message.getSOAPEnvelope() line: 435     
        MustUnderstandChecker.invoke(MessageContext) line: 62   
        AxisClient.invoke(MessageContext) line: 206     
        Call.invokeEngine(MessageContext) line: 2784    
        Call.invoke() line: 2767        
        Call.invoke(SOAPEnvelope) line: 1910    
        T2WSDLSOAPInvoker(WSDLSOAPInvoker).invokeCall(Call, SOAPEnvelope) line: 
193     
        T2WSDLSOAPInvoker(WSDLSOAPInvoker).invoke(Map, EngineConfiguration) 
line: 134   
        WSDLActivity$1.run() line: 271  
        Thread.run() line: 613  


A log message from Taverna (using [1]):

2009-04-01 10:02:36 [0x0-0x119119].net.sf.taverna.t2.workbench[4648]
DEBUG 2009-04-01 10:02:36,062
(org.apache.axis.transport.http.HTTPSender:484) - XML sent:
2009-04-01 10:02:36 [0x0-0x119119].net.sf.taverna.t2.workbench[4648]
DEBUG 2009-04-01 10:02:36,062
(org.apache.axis.transport.http.HTTPSender:485) -
---------------------------------------------------
2009-04-01 10:02:36 [0x0-0x119119].net.sf.taverna.t2.workbench[4648]
DEBUG 2009-04-01 10:02:36,063
(org.apache.axis.transport.http.HTTPSender:519) - POST /testws
HTTP/1.0
2009-04-01 10:02:36 [0x0-0x119119].net.sf.taverna.t2.workbench[4648]
Content-Type: text/xml; charset=utf-8
2009-04-01 10:02:36 [0x0-0x119119].net.sf.taverna.t2.workbench[4648]
Accept: application/soap+xml, application/dime, multipart/related,
text/*
2009-04-01 10:02:36 [0x0-0x119119].net.sf.taverna.t2.workbench[4648]
User-Agent: Axis/1.4
2009-04-01 10:02:36 [0x0-0x119119].net.sf.taverna.t2.workbench[4648]
Host: anybody.cephb.fr:8088
2009-04-01 10:02:36 [0x0-0x119119].net.sf.taverna.t2.workbench[4648]
Cache-Control: no-cache
2009-04-01 10:02:36 [0x0-0x119119].net.sf.taverna.t2.workbench[4648]
Pragma: no-cache
2009-04-01 10:02:36 [0x0-0x119119].net.sf.taverna.t2.workbench[4648]
SOAPAction: ""
2009-04-01 10:02:36 [0x0-0x119119].net.sf.taverna.t2.workbench[4648]
Content-Length: 332
2009-04-01 10:02:36 [0x0-0x119119].net.sf.taverna.t2.workbench[4648]
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><soapenv:Body><ns1:sayHello
xmlns:ns1="http://ws/";><name>myGrid</name></ns1:sayHello></soapenv:Body></soapenv:Envelope>
2009-04-01 10:02:36 [0x0-0x119119].net.sf.taverna.t2.workbench[4648]
DEBUG 2009-04-01 10:02:36,171
(org.apache.axis.transport.http.HTTPSender:627) - HTTP/1.1 200 OK
2009-04-01 10:02:36 [0x0-0x119119].net.sf.taverna.t2.workbench[4648]
DEBUG 2009-04-01 10:02:36,172
(org.apache.axis.transport.http.HTTPSender:627) - Content-type
text/xml; charset=utf-8
2009-04-01 10:02:36 [0x0-0x119119].net.sf.taverna.t2.workbench[4648]
DEBUG 2009-04-01 10:02:36,172
(org.apache.axis.transport.http.HTTPSender:627) - Content-length 223
2009-04-01 10:02:36 [0x0-0x119119].net.sf.taverna.t2.workbench[4648]
DEBUG 2009-04-01 10:02:36,173
(org.apache.axis.transport.http.HTTPSender:794) -
2009-04-01 10:02:36 [0x0-0x119119].net.sf.taverna.t2.workbench[4648]
XML received:
2009-04-01 10:02:36 [0x0-0x119119].net.sf.taverna.t2.workbench[4648]
DEBUG 2009-04-01 10:02:36,173
(org.apache.axis.transport.http.HTTPSender:795) -
-----------------------------------------------

[1] 
http://www.mygrid.org.uk/tools/taverna/taverna-1/taverna-documentation/taverna-frequently-asked-questions/building-workflows/where-are-the-soap-messages/


It does work in Soap-UI:

POST http://anybody.cephb.fr:8088/testws HTTP/1.1
Content-Type: text/xml;charset=UTF-8
SOAPAction: ""
User-Agent: Jakarta Commons-HttpClient/3.1
Host: anybody.cephb.fr:8088
Content-Length: 333

<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><soapenv:Body><ns1:sayHello
xmlns:ns1="http://ws/";><name>myGrid</name></ns1:sayHello></soapenv:Body></soapenv:Envelope>

HTTP/1.1 200 OK
Transfer-encoding: chunked
Content-type: text/xml; charset=utf-8

<?xml version="1.0" ?><S:Envelope
xmlns:S="http://schemas.xmlsoap.org/soap/envelope/";><S:Body><ns2:sayHelloResponse
xmlns:ns2="http://ws/";><returnHello>Hello
myGrid</returnHello></ns2:sayHelloResponse></S:Body></S:Envelope>



And also using curl if we replicate the exact headers sent by Taverna:

: st...@mira ~;curl -v -d @3 -H'Content-Type: text/xml; charset=utf-8'
-H'Accept: application/soap+xml, application/dime, multipart/related,
text/*' -H'User-Agent: Axis/1.4' -H'Host: anybody.cephb.fr:8088'
-H'Cache-Control: no-cache' -H'Pragma: no-cache' -H'SOAPAction: ""'
http://anybody.cephb.fr:8088/testws
* About to connect() to anybody.cephb.fr port 8088 (#0)
*   Trying 195.220.62.69... connected
* Connected to anybody.cephb.fr (195.220.62.69) port 8088 (#0)
> POST /testws HTTP/1.1
> Content-Type: text/xml; charset=utf-8
> Accept: application/soap+xml, application/dime, multipart/related, text/*
> User-Agent: Axis/1.4
> Host: anybody.cephb.fr:8088
> Cache-Control: no-cache
> Pragma: no-cache
> SOAPAction: ""
> Content-Length: 332
>
< HTTP/1.1 200 OK
< Transfer-encoding: chunked
< Content-type: text/xml; charset=utf-8
<
* Connection #0 to host anybody.cephb.fr left intact
* Closing connection #0
<?xml version="1.0" ?><S:Envelope
xmlns:S="http://schemas.xmlsoap.org/soap/envelope/";><S:Body><ns2:sayHelloResponse
xmlns:ns2="http://ws/";><returnHello>Hello
myGrid</returnHello></ns2:sayHelloResponse></S:Body></S:Envelope>


As far as I can see, the server is sending back it's response as

<?xml version="1.0" ?><S:Envelope
xmlns:S="http://schemas.xmlsoap.org/soap/envelope/";><S:Body><ns2:sayHelloResponse
xmlns:ns2="http://ws/";><returnHello>Hello
myGrid</returnHello></ns2:sayHelloResponse></S:Body></S:Envelope>

- but it's not sending a Content-Length header, and it's not closing
the connection - so Java is just waiting to see if there's any more
data coming back, hanging on the next read() - even though the XML is
"finished" it doesn't know that yet as it's using buffering to read
the stream and parse the character set.



Could you try using another HTTP server implementation (using
something like Tomcat or Jetty) instead of using endpoint.publish()
..?


-- 
Stian Soiland-Reyes, myGrid team
School of Computer Science
The University of Manchester

------------------------------------------------------------------------------
_______________________________________________
taverna-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/taverna-users
Documentation: http://www.mygrid.org.uk/usermanual1.7/
FAQ: http://www.mygrid.org.uk/wiki/Mygrid/TavernaFaq
Biological Services: http://www.mygrid.org.uk/wiki/Mygrid/BiologicalWebServices

Reply via email to