Web_Services_Transformer_12,0: Fatal Error: Fatal: 0026`:`com.ascentialsoftware.wsclient.ServiceInvocationException: Service invocation exception:
at com.ascentialsoftware.wsclient.WebService.callService(WebService.java:1602)
at com.ascentialsoftware.wsclient.WebService.callService(WebService.java:1544)
at com.ascentialsoftware.wspack.Transformer.process(Transformer.java:104)
at com.ascentialsoftware.jds.StageFactory.runStage(StageFactory.java:544)
at com.ascentialsoftware.jds.StageFactory.runTransformer(StageFactory.java:361)
Caused by: java.lang.NullPointerException
at java.io.FilterInputStream.read(FilterInputStream.java:89)
at org.apache.xerces.impl.XMLEntityManager$RewindableInputStream.read(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:242)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:376)
at com.ascentialsoftware.wsclient.OperationCall.handleRemoteException(OperationCall.java:366)
at com.ascentialsoftware.wsclient.OperationCall.invoke(OperationCall.java:274)
at com.ascentialsoftware.wsclient.WebService.callServiceInternal(WebService.java:1685)
at com.ascentialsoftware.wsclient.WebService.callService(WebService.java:1591)
... 4 more
The webservice does have parameters named Username and Password, however, the authentication at the receiving end has been disabled. It just checks if the IP address of the machine that the request comes from is whitelisted.
I have ensured that the IP address of the DataStage server has been added to the whitelist. And yet it fails.
To get the soapUI working, I added my local machine IP address to the white list and soapUI was able to successfully consume the webservice and retrieve the results.
Any ideas, anyone? I really appreciate your time and effort.
Is this in 9.1 ? I heard of an issue in some cases with 9.1 and there may be a patch available. Contact your support provider. If it is not 9.1, have you ever gotten "any" web services to work?
Ok...if you have at least one that is working, it is sometimes helpful to trace the activity of the invocation....
Build your Job as a "Server" Job....(do this first with the temperature conversion service that you know works).....then when you compile and run it, click on the "Tracing" tab of the Run dialog.
In the Tracing dialog, select your WSTransformer on the left and click ALL FOUR boxes on the right.
In the DS Log you will get a LOT of messages....look carefully thru them...in the very middle there will be two XML messages...the request....and the response.....
Those contain the SOAP details.....it helps to use this to see if/when you get both messages, or not. It often helps identify whether there are communication problems, local value initialization and serialization problems (DS unable to build the soap envelope) or whether the process is blowing up remotely.
Wow for Tracing, have to second ernie!! It helped with a similar issue I had. The 2 log messages for request and response will assist the web developer . Can you route your message through a Proxy that is trusted by the SOAP UI - will that help ? MY Web programming background is non existent , so pardon me if thats dumb question.
Just wow. Thanks for elaborating on how to enable tracing. I did that, and I did see the XML request in the logs. The very next line is the following error.
TSDS_UID_WebService_Server..Web_Services_Transformer_0: com.ascentialsoftware.wsclient.ServiceInvocationException: Service invocation exception:
at com.ascentialsoftware.wsclient.WebService.callService(WebService.java:1602)
at com.ascentialsoftware.wsclient.WebService.callService(WebService.java:1544)
at com.ascentialsoftware.wspack.Transformer.process(Transformer.java:104)
at com.ascentialsoftware.jds.StageFactory.runStage(StageFactory.java:544)
at com.ascentialsoftware.jds.StageFactory.runTransformer(StageFactory.java:361)
Caused by: java.lang.NullPointerException
at java.io.FilterInputStream.read(FilterInputStream.java:89)
at org.apache.xerces.impl.XMLEntityManager$RewindableInputStream.read(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:242)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:376)
at com.ascentialsoftware.wsclient.OperationCall.handleRemoteException(OperationCall.java:366)
at com.ascentialsoftware.wsclient.OperationCall.invoke(OperationCall.java:274)
at com.ascentialsoftware.wsclient.WebService.callServiceInternal(WebService.java:1685)
at com.ascentialsoftware.wsclient.WebService.callService(WebService.java:1591)
... 4 more
I copied the XML request and tried that in the soapUI and it ran successfully. Therefore, there is nothing wrong with the request.
Ramesh,
Can you please tell me how do I pass a message through a proxy?
Just navigate to the Security and Proxy tab of the Stage page in a web service transformer ,and see if any of the settings ( tons of them) are applicable to your IT internet infrastructure. To enter proxy server name , navigate to the Proxy Tab , you will find a place to type it in.
Do you need an SSL Keystore file ? Security tab has a place for that . By the way did you get an XML response in the job log ? Going by your prior posts , it seems like your request envelope was not received at the web service endpoint.
I am not sure if I need a keystore file. I do know that the IP address of the machine that is making the request should be present in a whitelist. I confirm that the IP address of the DataStage Server has been whitelisted.
The Directory log does show the request envelope. However, the very next line in the log is an error. I am not sure if the web service endpoint received the request and then threw the error. Or if it didn't receive anything at all.
...do you get the request and response nicely when you call the TemperatureConversion service?
...and another thought (although I would expect this to blow up prior to the request going out) are the datatypes....what are they? Anything different or odd about them?
Yes, I get request and response nicely using the Temp Conversion Service.
The datatypes looks ordinary.
I tried another WSDL that I didn't know existed until now and this time the server job ran fine. I can see the XML Response in the Director log and everything looks good. It did throw "Untrusted Server" error, but then I checked "Trust all servers" under security and it ran fine.
However, I don't see the result in the XML file. I can only see it in the Director log.