You will have to learn how to use the xmlOutput Stage to build that xml, or for a small one like this, you could even just use a Transformer.....building the entire soap "body" and then using the "User Defined Message" option in the input link of the WSTransformer Stage to let DataStage know that YOU crafted the entire SOAP body yourself.....and it won't "re-cast" the xml but just wrap it with the remainder of the envelope and send it along.
Do some searching here in the forum...this has been discussed before...but first make sure you are able to create that body and just send it to a flat file for review before trying to send it into the WS Stage.
Yes...you can use web services that have complex inputs/outputs.... and then the WSStage will only do the "communication".
But you have to build (and/or decipher) the request and the response.....generally it is the "body" that you are crafting (or parsing) and/or the header.
That is why goal #1 is to find out exactly what a valid body request and response look like......(a sample...use a tool like SOAP ui), and then work with the xmlOutput Stage (or Hierarchical Stage) to build exactly that Body (sending first to a flat file)....and then do the same with the xmlInput Stage, to parse the response (reading from a flat file)......and then put things together.
I used Hierarchiel transformer to do regrouping. And I got an XML file with desired output.
Currently my Job design is as below :
Oracle DB --> Transformer --> Hierarchical Data --> WS Client
Now I am getting te below error :
TGT_WBS_LISTEDVALUES,0: Info: JOB_INT_LISTEDVALUES_JDE_CAS_FinalStep_ToWebservices_2.TGT_WBS_LISTEDVALUES: 0030`:`com.ascentialsoftware.wsclient.ServiceInvocationException: Service invocation exception: Content is not allowed in prolog.
at com.ascentialsoftware.wsclient.ServiceInvocationException.<init>(ServiceInvocationException.java:44)
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:105)
at com.ascentialsoftware.jds.StageFactory.runStage(StageFactory.java:544)
at com.ascentialsoftware.jds.StageFactory.runTarget(StageFactory.java:348) Caused by: org.xml.sax.SAXParseException: Content is not allowed in prolog.
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at com.ascentialsoftware.wsclient.xml.TreeBuilder.xmlReaderToDom(TreeBuilder.java:325)
at com.ascentialsoftware.wsclient.InputRequest.buildRequestHeaderDocument(InputRequest.java:840)
at com.ascentialsoftware.wsclient.WebService.callServiceInternal(WebService.java:1624)
at com.ascentialsoftware.wsclient.WebService.callService(WebService.java:1591)
What is the meaning of this issue and how to resolve this. I have gone through old posts on the same error but could not get a solution
As noted by Ernie, build a version of your job that drops your generated XML to a file rather than directly to the web service. Then you can see what, if anything, is wrong with it. The link I posted should give you an idea where to start looking at least.
-craig
"You can never have too many knives" -- Logan Nine Fingers
Hard to say. It sounds like it isn't liking the xml that you constructed, and isn't even able to make the initial invocation. Did you match the xml body that you see in something like SOAPui?
...did you make sure that your output is just a "chunk" of xml string? It cannot be a whole document --- just the "body" of the SOAP envelope.