I’ve created a very simple service flow which gets a file on the IS server (on C:) and then send a XOPObject :
I’ve put a “sample.PDF” file in C:\ of my IS server.
And I’ve created the Service flow “getPDFAndSendXOP” which contains theses 3 steps :
call the service Flow “pub.file.getFile” to read the file
call the service flow “pub.io.close”
call the service flow “pub.soap.utils:createXOPObject”
I’ve created the file descriptor : wsGetPDFAndSendXOP, that calls the service operation getPDFAndSendXOP
I’ve tested my web service in SoapUI.
After running it the first time, the PDF attachment tab appears and the PDF file is valid.
but when running the same service a 2nd time in SoapUI, the response is empty.
If I run the service a 3rd time, all works fine (PDF valid).
If I run the service a 4th time, the SoapUi response is empty.
etc…
It wortks exactly half the time.
When it does not work (half the time) the IS returns this error :
An error occured writing the response to an HTTP request.
Caused by: org.apache.axis2.AxisFault: Could not compress response
Caused by: java.net.SocketException: Connection reset by peer: socket write error
Would you know what I may configure on the IS server to avoid this error please ?
Product webMethods Integration Server
Version 9.8.0.0
Updates IS_9.8_Core_Fix4
My IS Extended settings are :
watt.server.compile=D:\SoftwareAG\jvm\jvm\bin\javac -classpath {0} -d {1} {2}
watt.server.SOAP.MTOMStreaming.cachedFiles.location=temp\mtom\cachedfiles
watt.server.SOAP.MTOMStreaming.enable=true
watt.server.SOAP.MTOMStreaming.threshold=4000
watt.server.SOAP.MTOMThreshold=0
The error:
02.Caused by: org.apache.axis2.AxisFault: Could not compress response
03.Caused by: java.net.SocketException: Connection reset by peer: socket write error
indicates this is a connection/access error. check with the system that you are trying to connect to, see if you have the right authentication credentials. or if the user has access to that service.
Additionally to what Tong said, maybe it will be a good idea to use a Network sniffer like Wireshark or something else and this way check what is happening on the lower level.
And I usually do the file.close after I create the xopObject, but that is just me.