[mule-user] WSDL connector limitations are blocking when combined with Axis bug #1495

0 views
Skip to first unread message

Laurent Bihanic

unread,
Mar 30, 2007, 5:40:08 AM3/30/07
to Mule Users
Hi,

Trying to use the WSDL connector with Mule 1.3.3, I hit Axis bug #1495
(http://issues.apache.org/jira/browse/AXIS-1495) which is flagged as major but
open since August 2004 (Axis 1.1) :-(

Due to this bug, the target Axis (1.4) fails to generate the WSDL associated
to the WS I call. (I can't change the Axis version or the WSDL!)

I tried several workarounds but none of them work due to weird limitations in
the WSDL XFire connector :

1. *The connector does not support wsdl:file:/// URIs*
When using this URI scheme, Mule fails to start with the error:

org.mule.umo.lifecycle.InitialisationException: The Endpoint Uri scheme
"wsdl:file" is not compatible with Connector
"org.mule.providers.soap.xfire.wsdl.XFireWsdlConnector"
at
org.mule.providers.AbstractServiceEnabledConnector.initialiseFromUrl(AbstractServiceEnabledConnector.java:66)
at
org.mule.providers.service.ConnectorFactory.createConnector(ConnectorFactory.java:254)

2. *The connector requires that a query string be present in the URI*
To workaround the above problem, I set up a local Apache server to make the
WSDL available thru HTTP : wsdl:http://localhost/foo.wsdl&method=bar

On the first message, the connector fails with the error:

java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1768)
at
org.mule.providers.soap.xfire.wsdl.XFireWsdlMessageDispatcher.doConnect(XFireWsdlMessageDispatcher.java:41)
at
org.mule.providers.AbstractMessageDispatcher.connect(AbstractMessageDispatcher.java:485)

The code does not handle the case where the query part is missing.

3. *The connector does not handle the base URI when resolving imports*
Hopefully, Apache nicely ignores the query string when accessing files. The
WSDl URL then becomes wsdl:http://localhost/foo.wsdl?wsdl&method=bar and...
The connector fails with the following error:

WSDLException (at /wsdl:definitions/wsdl:import): faultCode=OTHER_ERROR:
Unable to resolve imported document at 'foo_BIND.wsdl'.: This file was not
found: file:/the_current_directory/foo_BIND.wsdl:
java.io.FileNotFoundException: This file was not found:
file:/the_current_directory/foo_BIND.wsdl
at com.ibm.wsdl.util.StringUtils.getContentAsInputStream(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.parseImport(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.parseDefinitions(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
at org.codehaus.xfire.client.Client.<init>(Client.java:234)
at org.codehaus.xfire.client.Client.<init>(Client.java:245)
at
org.mule.providers.soap.xfire.wsdl.XFireWsdlMessageDispatcher.doConnect(XFireWsdlMessageDispatcher.java:46)
at
org.mule.providers.AbstractMessageDispatcher.connect(AbstractMessageDispatcher.java:485)

4. *The Axis WSDL connector is disabled*
Trying to switch to Axis (using a "wsdl-axis:..." URL) fails with the error:

org.mule.providers.service.ConnectorServiceException: The Axis WSDL client
transport is currently disabled due to issues with the way the parser handles
named parameters. please use the xfire implementaiton instead for now (wsdl-xfire)
at
org.mule.providers.service.ConnectorFactory.createConnector(ConnectorFactory.java:229)


Does someone know a way to work around these problems (besides starting Mule
from the directory of the WSDL which I'm currently doing) ?

Any chance to have these limitations fixed in Mule 1.4 ?

From the code of XFireWsdlMessageDispatcher, it seems the last issue is a
XFire bug as Mule does provide the URL, not a stream.
I'll try to switch to XFire 1.2.5 to see if some WSDL issues have been fixed.

TIA

Laurent

---------------------------------------------------------------------
To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply all
Reply to author
Forward
0 new messages