Reciving error while invoking a web service.

Hello All

I am facing an issue when trying to invoke a web service.

Funny thing is the same service works in QA with the same WSDL file but in Live its giving the below error:

[ISS.0088.9112] An Exception was thrown in the server:[ISS.0088.9139] Output parameters do not conform to targetOutputSignature:
errorCode=VV-002
pathName=/impl:GetAccessoryListResponse/GetAccessoryListReturn/p558:statusCode
errorMessage=[ISC.0082.9026] Undefined Object found

errorCode=VV-002
pathName=/impl:GetAccessoryListResponse/GetAccessoryListReturn/p558:statusText
errorMessage=[ISC.0082.9026] Undefined Object found

errorCode=VV-002
pathName=/impl:GetAccessoryListResponse/GetAccessoryListReturn/p558:totalNoOfRecords
errorMessage=[ISC.0082.9026] Undefined Object found

errorCode=VV-002
pathName=/impl:GetAccessoryListResponse/GetAccessoryListReturn/p558:recordsFetched
errorMessage=[ISC.0082.9026] Undefined Object found.

I am using 8.2.2 version currently.

the data type of second field (statusText) is ‘string’ and rest has ‘int’ data type.
From the error above suggests some mismatch in the fields/parameters in the output document compared to the one present in the web service which is being called.
I tried changing the data type as suggested in other forums to ‘string’ for all the fields in the WSDL file before making the Web service descriptor but still facing the problem.

Would you please let me know if you have resolved the issue earlier or plz let me know if you have any suggestions on the same.

Any help is deeply appreciated.

Best Regards
MT

Hi,

There are multiple issues that can cause this problem. One of them being the WSDL imported is an older version than the actual implementation at the back end server.

I would recommend you calling the complete WSDL URL instead of using a WSDL file and re-importing the complete descriptor.

Once you have it should work.

Also bear in mind that your QA URL and PROD URL would be different so the port and the access bindings would be different which means that you cannot reuse the same WSDL for PROD and QA.

Lemme know if this works.

Hi Sam

Thanks for the reply.

So if i understood your point correctly, you want me to directly call the back end service bypassing the webMethods IS to download the current WSDL of the service just to make sure i have the latest version and then re create the WSD descriptor with it.

If yes then thats not possible as the back end service cannot be called from else where except the webMethods IS due to network connectivity restrictions.

We have diffrent end points in QA and Live, and as you mentioned, the same service runs on diffrent servers and ports and hence we are hitting the service correctly in both environments.

Let me know if i am missing your point.

Regards
MT

Not really. Let me explain in more detail.

If you have a unix box, can you do a ping to the target server where your webService is hosted to see if connectivity exist between your IS and target service. E.g. if i have a webService end point which looks like the below

https://www.ABCsolutionsUnited.co.za/vas/KINGbankdocumentsv100.asmx

Now in webMethods you need to create a webService descriptor, in the next dialog box titled web Service Descriptor select consumer and WSDL URL -> Enter a name and select a folder -> Now the dialog box will come which says Enter the URL or select a local file here you insert

https://www.ABCsolutionsUnited.co.za/vas/KINGbankdocumentsv100.asmx?WSDL

and click Finish.

Once you do this webMethods will get the components directly from the target server with the most updated descriptions.

This way your WSDL will be from the actual end point server.

Also as you said that "We have diffrent end points in QA and Live, and as you mentioned, the same service runs on diffrent servers and ports and hence we are hitting the service correctly in both environments. " - which means you need to call 2 separate WSDL URL(s) one for prod and one for QA.

Also check the connectivity from your server is there to both the end points at QA and PROD.

Hope this helps.

Hi Sam

Well i did a ping and i am getting a response from the target server, telnet also works on the specified port and i am able to connect on the specific port and IP.

But when i am giving the URL with ?WSDL at the end while creating the consumer WSD i am getting Connection Time out exception.
This is strange!!

Connectivity is established from both QA and Live webMethods servers.

Any suggestions please…

Hi Mayank,

This is pretty odd. If you are logged on to the UNIX physical box of your QA server and able to hit the target server’s IP address then i don’t see a problem.

Okay i have a hunch need to confirm a few things:

  1. Check with your UNIX team if your URL’s host name is resolvable to an IP Address and vice versa. Sometimes instead of putting https://10.12.13:5555/vas/KINGbankdocumentsv100.asmx?WSDL in place of https://www.ABCsolutionsUnited.co.za/vas/KINGbankdocumentsv100.asmx?WSDL would work. i.e. the hostname might not be reachable.

  2. Also try using the webService with the IP address inplace of the hostname.

Let me know if it works.

To me this looks more like a connectivity issue from webMethods to your end server than anything else.

Hi Sam

Well i already tried your suggestion in my last attempt by putting an IP instead of hostname.
None the less this wont help as we had already included and mapped the hostname and the IP in the QA webMethod server’s host file.

I had checked the connectivity on the IP and the host we have mapped it to in the host file and seems to be sound and connecting.

So i believe this shouldnt be a network issue.

The thing which baffles me is that we have the connectivity but still while creating WSD using the URL, i am getting Connection timed out but when i import the WSDL file with the same URL in the address and create a WSD, i am able to hit the service which throws Object not found error.

Hmmm…not sure where to go from here Mayank as all the possibilities that can cause this issue we have tried.

I would suggest asking your customer to send a fresh offline WSDL file, try importing that and see if this works.

To prove my point try using this webService

http://www.webservicex.net/SendSMS.asmx?WSDL

on your browser and see if you get the WSDL. This is an free webService you can use. Try using this on your local machine which as an webMethods instance installed. Note that your machine should have access to the internet and you should have been able to open the WSDL on your browser.

Try using the same URL in webMethods. If it works then you have an issue with connectivity on your UNIX box.