My Oracle Support Banner

ODI Unnecessarily Appends "?WSDL" to Web Service Calls (Doc ID 2676409.1)

Last updated on JUNE 04, 2020

Applies to:

Oracle Data Integrator on Marketplace - Version 12.2.1.4.200123 and later
Information in this document applies to any platform.

Symptoms

When using Oracle Data Integrator (ODI) 12c to make web service calls to a WSDL endpoint, ODI adds an unexpected "?WSDL" to the end of the URL, causing the URL to become invalid. This can cause the request to fail, and an error logged to the remote server.

The WSDL for this third-party web service API has a pattern similar to the following:

https://<HOSTNAME>:<PORT>/<PATH_TO_ACTION>/Wsdl.action?wsdl=<REMOTE_ACTION>

When ODI sends the request, it sends the following, which contains two question mark (?) query indicators:

https://<HOSTNAME>:<PORT>/<PATH_TO_ACTION>/Wsdl.action?wsdl=<REMOTE_ACTION>?WSDL

This request fails, due to the invalid URL structure, and can raise alerts on the remote endpoint server.

Locally, the Studio or Agent log may show the following:

Error reaching WSDL with appending'?WSDL' https://<HOSTNAME>:<PORT>/<PATH_TO_ACTION>/Wsdl.action?wsdl=<REMOTE_ACTION>?WSDL[[
com.sunopsis.wsinvocation.SnpsWSInvocationException: This URL does not point to a valid WSDL
  at oracle.odi.wsinvocation.client.impl.jaxws.OdiJaxwsParserImpl.setWsdlUrl(OdiJaxwsParserImpl.java:203)
  at com.sunopsis.wsinvocation.client.WebServiceFactory.getParserIstance(WebServiceFactory.java:84)
  at com.sunopsis.wsinvocation.client.WebServiceFactory.getParserIstance(WebServiceFactory.java:128)
  at com.sunopsis.dwg.tools.InvokeWebService.getWSTopology(InvokeWebService.java:370)
  at com.sunopsis.dwg.tools.InvokeWebService.actionExecute(InvokeWebService.java:514)
  ...
Caused by: org.xml.sax.SAXParseException; lineNumber: 329; columnNumber: 41; The entity name must immediately follow the '&' in the entity reference.
  at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:257)
  at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
  at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:121)
  at oracle.odi.wsinvocation.client.impl.jaxws.OdiJaxwsParserImpl.setWsdlUrl(OdiJaxwsParserImpl.java:174)
  ... 24 more
]]

However, ODI makes a second request after the failure that does not include the "?WSDL" and it is successful.

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Symptoms
Cause
Solution
References


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.