I have been working on a BlackBerry application that consumes web services from ColdFusion 7. The Java ME SDK and the Java Wireless Toolkit both require that the generated WSDL be of the document/literal type.
Fortunately, I have input on the web service development so I tried setting ‘style=”document”‘ in the cfcomponent tag. This generated a document/literal style WSDL but now wscompile generates the following errors in several places:
Found unknown simple type: javax.xml.soap.SOAPElement
Found unknown simple type: java.util.Calendar
Any ideas why this is happening?
The WSDL does get parsed correctly by the JWSDP tool but the stubs use namespaces that are not available in the J2ME platform. I would have thought ColdFusion WSDL would work more easily with other products in the Java family.
It turns out that the issue was related to the data types of method parameters and return types that was causing the issue. The WSDL was valid and the version of wscompile for J2SE was able to parse it correctly. But due to the reduced API capabilities on the mobile platform, certain data types cannot be parsed with the J2ME version of wscompile.
I did need to keep the ‘style=”document”‘ declaration in the cfcomponent tag on the ColdFusion web service since the stub generator for J2ME will only parse document/literal type WSDL files.
http://developers.sun.com/mobility/midp/articles/webservices/ provides a reference for the data types supported in JAX-RPC for Java ME.