Web Services Transformer Fatal Error 0026

Post questions here relative to DataStage Enterprise/PX Edition for such areas as Parallel job design, Parallel datasets, BuildOps, Wrappers, etc.

Moderators: chulett, rschirm, roy

Post Reply
just4geeks
Premium Member
Premium Member
Posts: 644
Joined: Sat Aug 26, 2006 3:59 pm
Location: Mclean, VA

Web Services Transformer Fatal Error 0026

Post by just4geeks »

I get the following error, when invoking a webservice which otherwise runs fine in soapUI.

Code: Select all

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.
Attitude is everything....
eostic
Premium Member
Premium Member
Posts: 3838
Joined: Mon Oct 17, 2005 9:34 am

Post by eostic »

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?

Ernie
Ernie Ostic

blogit!
<a href="https://dsrealtime.wordpress.com/2015/0 ... ere/">Open IGC is Here!</a>
just4geeks
Premium Member
Premium Member
Posts: 644
Joined: Sat Aug 26, 2006 3:59 pm
Location: Mclean, VA

Post by just4geeks »

Attitude is everything....
eostic
Premium Member
Premium Member
Posts: 3838
Joined: Mon Oct 17, 2005 9:34 am

Post by eostic »

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.

Ernie
Ernie Ostic

blogit!
<a href="https://dsrealtime.wordpress.com/2015/0 ... ere/">Open IGC is Here!</a>
rameshrr3
Premium Member
Premium Member
Posts: 609
Joined: Mon May 10, 2004 3:32 am
Location: BRENTWOOD, TN

Post by rameshrr3 »

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.
just4geeks
Premium Member
Premium Member
Posts: 644
Joined: Sat Aug 26, 2006 3:59 pm
Location: Mclean, VA

Post by just4geeks »

Ernie,

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.

Code: Select all

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?
Attitude is everything....
rameshrr3
Premium Member
Premium Member
Posts: 609
Joined: Mon May 10, 2004 3:32 am
Location: BRENTWOOD, TN

Post by rameshrr3 »

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.
just4geeks
Premium Member
Premium Member
Posts: 644
Joined: Sat Aug 26, 2006 3:59 pm
Location: Mclean, VA

Post by just4geeks »

Ramesh,

OK, I see the fields to fill in the Proxy details. But I am not sure what do I with it. There is no proxy available in our infrastructure.
Attitude is everything....
rameshrr3
Premium Member
Premium Member
Posts: 609
Joined: Mon May 10, 2004 3:32 am
Location: BRENTWOOD, TN

Post by rameshrr3 »

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.
just4geeks
Premium Member
Premium Member
Posts: 644
Joined: Sat Aug 26, 2006 3:59 pm
Location: Mclean, VA

Post by just4geeks »

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.
Attitude is everything....
eostic
Premium Member
Premium Member
Posts: 3838
Joined: Mon Oct 17, 2005 9:34 am

Post by eostic »

Just some thoughts...

...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?

Ernie
Ernie Ostic

blogit!
<a href="https://dsrealtime.wordpress.com/2015/0 ... ere/">Open IGC is Here!</a>
just4geeks
Premium Member
Premium Member
Posts: 644
Joined: Sat Aug 26, 2006 3:59 pm
Location: Mclean, VA

Post by just4geeks »

Hi Ernie,

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.

My test job is like this,

Code: Select all

Seq-file --> Tranformer --> Web Services Transformer --> XML Output
When I open the XML file, I only see this,

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
Any idea what is going wrong this time?
Attitude is everything....
Post Reply