Page 1 of 1

Webservices error

Posted: Fri Feb 20, 2015 9:21 am
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)

Posted: Fri Feb 20, 2015 12:23 pm
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

Posted: Fri Feb 20, 2015 12:52 pm
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>

Posted: Sat Feb 21, 2015 2:20 am
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

Posted: Tue Feb 24, 2015 6:42 am
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.

Posted: Tue Feb 24, 2015 7:14 am
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

Posted: Tue Feb 24, 2015 7:49 am
by chulett
Ha... Gandalf.

Posted: Fri Feb 27, 2015 4:02 am
by devesh_ssingh
Hi Ernie,

the content is hidden and accessible to premium user.

can you please make it visible to me .

br,
Devesh

Posted: Fri Feb 27, 2015 4:15 am
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.

Posted: Fri Feb 27, 2015 4:53 am
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

Posted: Fri Feb 27, 2015 6:29 am
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

Posted: Fri Feb 27, 2015 7:33 am
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