Here is a little tricky bug on CFMX 7 dealing with web services and our favorite buddies, Coldfusion Mappings. 100% reproducible and I think Macromedia had a fix for 6.1, but not for 7, at least I don't know about it.

Here is what it comes down to. Let's say you have a CFC on your server on the following physical location:

/data/cfcs/remotes/giftshop/products.cfc

And the apache or IIS web root points to "remotes", thus, to call this webservice wsdl you would use

http://myurl/giftshop/products.cfc?wsdl

Now let's say that you have a CFMX mapping to any directory, it actually doesn't matter, but with the name "giftshop".

When you go now to the wsdl URL you get this nasty error:

AXIS error

Sorry, something seems to have gone wrong... here are the details:

Fault - Error attempting to create Java skeleton for CFC web service; nested exception is:

coldfusion.xml.rpc.CFCInvocationException: [coldfusion.xml.rpc.SkeletonClassLoader$UnresolvedCFCDataTypeException : Could not resolve CFC datatype: /giftshop/webProducts.cfc]

AxisFault

faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException

faultSubcode:

faultString: Error attempting to create Java skeleton for CFC web service; nested exception is:

coldfusion.xml.rpc.CFCInvocationException: [coldfusion.xml.rpc.SkeletonClassLoader$UnresolvedCFCDataTypeException : Could not resolve CFC datatype: /giftshop/webProducts.cfc]

faultActor:

faultNode:

faultDetail:

{http://xml.apache.org/axis/}hostname:ibm-1.sandals.com

The problem lies that CFMX confuses the webroot path with the coldfusion mapping, it can't distinguish between them and actually follows the mapping. Once you remove or rename the CFMX mapping, the error disappears and you have a wsdl compilation.

Does anybody now if a fix is on the way? or already out? Please let me know.