Page 1 of 1

WS Transformer failure

Posted: Fri Mar 16, 2012 4:23 pm
by Nagin
I have a job that takes XML input and invokes a web service. The job has been aborting with the below message. I made sure that the XML is ok and was able run it through Soap UI to get reply from the same web service. Just the web service transformer is not liking the input and not giving much information. Any help is appreciated.

Thanks.

WSTransform,0: %%%%%%%%%%%%%%%%% WSTR Initialized %%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%% WSTR Running %%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%% WSTR Run Completed %%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%% WSTR Aborting %%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%% WSTR Aborted %%%%%%%%%%%%%%%%%

Posted: Sun Mar 18, 2012 6:44 am
by eostic
Does it abort always, or just once in awhile?

Did it "ever" work correctly?

What are you using to display the result below?

You say it aborts...where is this message or data? In the log, or in the target file?

Ernie

Posted: Sun Mar 18, 2012 11:50 am
by Nagin
Ernie,

No, This WS Transofrm has not exactly worked so far.

I am still working on the developing this job. When I was passing fewer columns and tried to capture the reply from WS Transform in a file, it seemed like it was working, except that it was throwing an error message in the XML itself, but atleast it was generating an XML.

Now, after I have corrected my input XML to the WS Transform, I am not getting any reply.

I found the abort message in the Job log.

Posted: Mon Mar 19, 2012 9:07 am
by eostic
One useful debugging trick is to try it in a Server Job and turn on tracing....(at the run dialog, there is a trace option...select your stage and then click all four options on the right)......you will get a whole lot of log data, and at the center will be the xml soap request....and the xml soap response........

see what you get...compare it to what you are getting with SOAP UI.

also...if you aren't doing it already, change your output link to just have one single large varchar column and an "/" in the Description property. Also, go to the message tab and then check "user defined message" and just select your single column in the pull down. Send that to a flat file with NO formatting. Review the response there.

Ernie

Posted: Tue Mar 20, 2012 12:25 pm
by Nagin
eostic wrote:One useful debugging trick is to try it in a Server Job and turn on tracing....(at the run dialog, there is a trace option...select your stage and then click all four options on the right)......you will get a whole lot of log data, and at the center will be the xml soap request....and the xml soap response........

see what you get...compare it to what you are getting with SOAP UI.

also...if you aren't doing it already, change your output link to just have one single large varchar column and an "/" in the Description property. Also, go to the message tab and then check "user defined message" and just select your single column in the pull down. Send that to a flat file with NO formatting. Review the response there.

Ernie
Ernie,
I tried the server job approach, the job is still aborting and the job log does not have any XML soap request or response. It does have the below error message

..Web_Services_Transformer_9: 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 com.ascentialsoftware.wsclient.xml.DerivationExpression._getToken(DerivationExpression.java:180)
at com.ascentialsoftware.wsclient.xml.DerivationExpression._setLastSegment(DerivationExpression.java:199)
at com.ascentialsoftware.wsclient.xml.DerivationExpression.hasMoreTokens(DerivationExpression.java:130)
at com.ascentialsoftware.wsclient.xml.DerivationParser.expr(DerivationParser.java:170)
at com.ascentialsoftware.wsclient.xml.DerivationParser.parse(DerivationParser.java:138)
at com.ascentialsoftware.wsclient.xml.TreeBuilder.compileRules(TreeBuilder.java:84)
at com.ascentialsoftware.wsclient.MappingHandler.fromArray(MappingHandler.java:304)
at com.ascentialsoftware.wsclient.InputRequest.buildRequestBodyDocument(InputRequest.java:908)
at com.ascentialsoftware.wsclient.WebService.callServiceInternal(WebService.java:1625)
at com.ascentialsoftware.wsclient.WebService.callService(WebService.java:1591)
... 4 more

Does it mean, there is some thing wrong with the way webservice is set up? But, I can invoke and get responses from web service from a browser and soap UI without any problems.

Posted: Tue Mar 20, 2012 2:14 pm
by eostic
It means that you are never getting "out of the box"....it's stopping before it even gets to the point where it can make the invocation.

If you are building the SOAP header or SOAP body yourself, then review it carefully...I usually cut and paste one directly from a tool like SOAP UI and then put it into a transformer upstream as a big string. Pass that in as input and use the "user defined message" pull down to indicate that column.

And make sure that you can call simple services, like some of the ones I mention at my blog (url below).

Ernie