Best Practices for Generating Web Services Proxy Classes in Java Environments
This topic provides information on commonly encountered issues while generating Web services proxy classes in the Java integrated development environments (IDE) Oracle JDeveloper and Axis. Solutions and workarounds are provided to successfully generate the Web Services v2.0 API proxy classes in these Java IDEs.
Oracle JDeveloper Workaround
For WSDLS that have a large number of fields, proxy generation succeeds for all WSDL files, but compilation might fail due to the doSerialize() or do Deserialize() method being more than 64KB in size.
To work around the failure
Avoid proxy class compilation failure.
See Avoiding Proxy Class Compilation Failure Due to the Java 64KB Limit.
Increase the Java heap size in the jdev.conf file.
Axis Workaround
Proxy generation can fail for large WSDL files, and throw the following exception:
java.lang.OutOfMemoryError: Java heap space
To work around the failure
Remove unused child objects from WSDL files.
Increase the Java heap size in the wsdl2java.bat/wsdl2java.sh file.
To remove child objects from Web Services v2.0 WSDL files
In the <Types> section in the WSDL, find the <xsd:schema> element with the target namespace "urn:/crmondemand/xml/ParentName/Query", and do the following:
Traverse to the <xsd:complexType> element with the name "ParentNameQuery".
Remove the <xsd:element> element with the name "ListOfChildNameQuery".
Remove the <xsd:complexType> element with the name "ListOfChildNameQuery".
Remove the <xsd:complexType> element with the name "ChildNameQuery".
Find the <xsd:schema> element with the target namespace "urn:/crmondemand/xml/ParentName/Data" and do the following:
Traverse to the <xsd:complexType> element with the name "ParentNameData".
Remove the <xsd:element> element with the name "ListOfChildNameData".
Remove the <xsd:complexType> element with the name "ListOfChildNameData".
Remove the <xsd:complexType> element with the name "ChildNameData".