Webservices error

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
devesh_ssingh
Participant
Posts: 148
Joined: Thu Apr 10, 2008 12:47 am

Webservices error

Post by devesh_ssingh »

Hi,

I have been working one of the required to call Webservice, the job design is simple
webservices client----Seq file

I am passing input arguement to get the reply , but job aborted.

The first impression was authetication issue, but we asked web-service owners to temporarily disable the authetication.

i ran the job again but throwing me below error.

Any input would be really appreciated.



Web_Services_Client_59,0: Fatal Error: Fatal: 0026`:`com.ascentialsoftware.wsclient.ServiceInvocationException: Service invocation exception: <ns1:Fault xmlns:ns1="http://schemas.xmlsoap.org/soap/envelop ... ing>SYSTEM : OSB Transport error Username; Operation name: Error code: BEA-380001 Reason: Internal Server Error</faultstring><detail><v1:error isLogged="true" xmlns:v1="http://error.ntpsoa.nordea.com/object/v ... essage>OSB Transport error Username; Operation name: Error code: BEA-380001 Reason: Internal Server Error</v1:message><v1:category>SYSTEM</v1:category><v1:timestamp>2015-02-20T15:13:29.181+01:00</v1:timestamp><v1:errorDetails><v1:errorDetail><v1:key>BEA-380001</v1:key><v1:value>response-pipeline : Route to business service : Internal Server Error</v1:value></v1:errorDetail><v1:errorDetail><v1:key>soap:Client</v1:key><v1:value>Message part {http://soa.nordea.com/BusinessRelation/ ... DIDRequest was not recognized. (Does it exist in service WSDL?)</v1:value></v1:errorDetail></v1:errorDetails></v1:error></detail></ns1:Fault>
at com.ascentialsoftware.wsclient.OperationCall.handleRemoteException(OperationCall.java:369)
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)
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.runSource(StageFactory.java:335)
eostic
Premium Member
Premium Member
Posts: 3838
Joined: Mon Oct 17, 2005 9:34 am

Post by eostic »

Hard to say....does the service work when using a tool like SOAPsonar or SOAPui?

Make sure that works perfectly and you are very familiar with the service, it's response, it's security requirements, etc. etc.

Ernie
Ernie Ostic

blogit!
<a href="https://dsrealtime.wordpress.com/2015/0 ... ere/">Open IGC is Here!</a>
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

Isn't this the relevant part of the error message?

<v1:value>Message part {http://soa.nordea.com/BusinessRelation/ ... DIDRequest was not recognized. (Does it exist in service WSDL?)</v1:value>
-craig

"You can never have too many knives" -- Logan Nine Fingers
devesh_ssingh
Participant
Posts: 148
Joined: Thu Apr 10, 2008 12:47 am

Post by devesh_ssingh »

Thanks Craig for spotting ...somehow i missed it.

that says request is received but web-service doesn't respond.

i will check with web service owner.

Br,
Devesh
devesh_ssingh
Participant
Posts: 148
Joined: Thu Apr 10, 2008 12:47 am

Post by devesh_ssingh »

I contacted the Web service owner and they applied correction .
now i see following issue

Web_Services_Client_65,0: Fatal Error: Fatal: 0026`:`com.ascentialsoftware.wsclient.ServiceInvocationException: Service invocation exception: <ns1:Fault xmlns:ns1="http://schemas.xmlsoap.org/soap/envelop ... ing>SYSTEM : OSB Transport error Username; Operation name:retrieveNaceCode_byBVDID Error code: BEA-380001 Reason: Internal Server Error</faultstring><detail><v1:error isLogged="true" xmlns:v1="http://error.ntpsoa.nordea.com/object/v ... essage>OSB Transport error Username; Operation name:retrieveNaceCode_byBVDID Error code: BEA-380001 Reason: Internal Server Error</v1:message><v1:category>SYSTEM</v1:category><v1:timestamp>2015-02-24T13:38:07.007+01:00</v1:timestamp><v1:errorDetails><v1:errorDetail><v1:key>BEA-380001</v1:key><v1:value>response-pipeline : Route to business service : Internal Server Error</v1:value></v1:errorDetail><v1:errorDetail><v1:key>soap:Server</v1:key><v1:value>YOU SHALL NOT PASS!</v1:value></v1:errorDetail></v1:errorDetails></v1:error></detail></ns1:Fault>
at com.ascentialsoftware.wsclient.OperationCall.handleRemoteException(OperationCall.java:369)
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)
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.runSource(StageFactory.java:335)

not sure how to debug futher, web services are responding through other API as they shown me

Any further input is musch appreciated here.
eostic
Premium Member
Premium Member
Posts: 3838
Joined: Mon Oct 17, 2005 9:34 am

Post by eostic »

This is one of those scenarios where I find it useful to create a Server Job for testing that does the same thing --- calling the Web Service Transformer.....because the Server Job Web Services Transformer Stage is able to perform detailed tracing....

Set up the Job and when you run it, go to the tracing tab of the run dialog.......find and check ONLY the WS Transformer Stage on the left, and ALL four boxes on the right.

You will get a very large set of log records...but in the middle of them, look carefully...there will be one or two "XML" log records.....these show the complete SOAP body being sent "out", and the SOAP body being returned. It's useful to do it this way because then you can:

a) compare the soap body going "out" to the one that is going out from the testing tool where you have this service working perfectly.

b) see if it gets out and ever comes back.....meaning, where is the error coming from. If the soap body coming back is this nice looking xml fault, then you know it is being generated by the server and can enlist the author's assistance on what might be wrong [they code what the fault is saying and delivering].

If there are differences in the envelope that goes out from DS and from your successfully working soap debugging tool, there are ways to impact that and make sure the right payload goes out. If there aren't any differences, then there is something else going on.....probably at the server.

Ernie
Ernie Ostic

blogit!
<a href="https://dsrealtime.wordpress.com/2015/0 ... ere/">Open IGC is Here!</a>
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

Ha... Gandalf.
-craig

"You can never have too many knives" -- Logan Nine Fingers
devesh_ssingh
Participant
Posts: 148
Joined: Thu Apr 10, 2008 12:47 am

Post by devesh_ssingh »

Hi Ernie,

the content is hidden and accessible to premium user.

can you please make it visible to me .

br,
Devesh
devesh_ssingh
Participant
Posts: 148
Joined: Thu Apr 10, 2008 12:47 am

Post by devesh_ssingh »

I have had a quick discussion with web services owner

they say that all the context are not added as and ask me to add it manually rest of it.

my impression is wSDL should be import everything by default.

below are the soap request should go to end point as per them.


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:obj="http://servicecontext.ntpsoa.nordea.com/object" xmlns:v1="http://soa.nordea.com/BusinessRelation/ ... a/wsdl/v1/">
<soapenv:Header>
<obj:serviceContext schemaVersion="?">
<obj:userId>g47868</obj:userId>
<obj:technicalUserId>TECH</obj:technicalUserId>
<obj:sessionId>ABCDEFG1234567890</obj:sessionId>
<obj:requestId>1181726853576</obj:requestId>
<obj:applicationId>NTPIL</obj:applicationId>
<obj:channelId>BRANCH</obj:channelId>
<obj:clientType>JPF</obj:clientType>
<obj:clientComponent>SoapUI</obj:clientComponent>
<obj:clientComponentVersion>1.6.1</obj:clientComponentVersion>
<obj:clientAction>retrieveHumanResourceByUserId</obj:clientAction>
<obj:clientView>humanresource.jsp</obj:clientView>
<obj:processInstance xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<obj:authMethod>NINAA</obj:authMethod>
<obj:officeMode>OFFICE</obj:officeMode>
<obj:userLocation>192.168.1.37</obj:userLocation>
<obj:requestDomain>DK</obj:requestDomain>
<obj:messageTimeStamp>2008-03-07T15:07:00.000Z</obj:messageTimeStamp>
<obj:auditCategory>TRACK</obj:auditCategory>
<obj:test>false</obj:test>
<obj:testParams>
<obj:testParam target="PerformanceTraceEnabled">true</obj:testParam>
<obj:testParam target="savecannedreply">false</obj:testParam>
<obj:testParam target="returncannedreply">false</obj:testParam>
</obj:testParams>
<obj:accountingUnit>ACCUNIT</obj:accountingUnit>
</obj:serviceContext>
</soapenv:Header>
<soapenv:Body>
<v1:retrieveNaceCode_byBVDIDRequest>
<bureauVanDijkId>*******</bureauVanDijkId>
<secretPassphrase>*****</secretPassphrase>
</v1:retrieveNaceCode_byBVDIDRequest>
</soapenv:Body>
</soapenv:Envelope>


but when i import the WSDL only below appears as input argument

<soapenv:Body>
<v1:retrieveNaceCode_byBVDIDRequest>
<bureauVanDijkId>******</bureauVanDijkId>
<secretPassphrase>******</secretPassphrase>
</v1:retrieveNaceCode_byBVDIDRequest>
</soapenv:Body>

Am i correct here? or ?


P.S--***** is used to mask here.
eostic
Premium Member
Premium Member
Posts: 3838
Joined: Mon Oct 17, 2005 9:34 am

Post by eostic »

Looks perfectly valid. The soap header isn't going to show from importing the wsdl, but you most certainly can pass it along in the call. Build the SOAP header separately in an upstream transformer....for testing, using a payload from your SOAP testing tool ---- you need to have a tool like SOAPsonar, as per the posts above, so that YOU become very familiar with the calling format, the header structure, etc.--- have you done that yet?

The Stage has a way to pass this header in as one of the columns.

Ernie
Ernie Ostic

blogit!
<a href="https://dsrealtime.wordpress.com/2015/0 ... ere/">Open IGC is Here!</a>
devesh_ssingh
Participant
Posts: 148
Joined: Thu Apr 10, 2008 12:47 am

Post by devesh_ssingh »

now i have added the SOAP header by manuel construction as shown below with in Output tab as input argument.

<soapenv:Header><obj:serviceContext schemaVersion="?"><obj:userId>g47868</obj:userId><obj:technicalUserId>TECH</obj:technicalUserId><obj:sessionId>ABCDEFG1234567890</obj:sessionId><obj:requestId>1181726853576</obj:requestId><obj:applicationId>NTPIL</obj:applicationId><obj:channelId>BRANCH</obj:channelId><obj:clientType>JPF</obj:clientType><obj:clientComponent>SoapUI</obj:clientComponent><obj:clientComponentVersion>1.6.1</obj:clientComponentVersion><obj:clientAction>retrieveHumanResourceByUserId</obj:clientAction><obj:clientView>humanresource.jsp</obj:clientView><obj:processInstance xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan ... :testParam target="PerformanceTraceEnabled">true</obj:testParam><obj:testParam target="savecannedreply">false</obj:testParam><obj:testParam target="returncannedreply">false</obj:testParam></obj:testParams><obj:accountingUnit>ACCUNIT</obj:accountingUnit></obj:serviceContext></soapenv:Header>


following error occured

Web_Services_Client_65,0: [Fatal Error] :1:17: The prefix "soapenv" for element "soapenv:Header" is not bound.

am i missing something here? does headar needs mapping?

br,
Devesh
eostic
Premium Member
Premium Member
Posts: 3838
Joined: Mon Oct 17, 2005 9:34 am

Post by eostic »

It's a namespace issue. Notice in the top one that you provided, soapenv is fully qualified as a prefix. Check the namespace tab on the stage...you may be able to put it in there. Look at the others that are in there for the syntax.

Ernie
Ernie Ostic

blogit!
<a href="https://dsrealtime.wordpress.com/2015/0 ... ere/">Open IGC is Here!</a>
Post Reply