Copy link to clipboard
Copied
Bug#4062560 - SOAP compilation fails with JRE 1.8
Problem Description:
Invoking a web service throws an error based around a wrong version of java.
Steps to Reproduce:
<cftry>
<cfinvoke method="getQuote" webservice="http://www.webservicex.net/stockquote.asmx?WSDL" returnvariable="SOAPResponse" >
<cfinvokeargument name="symbol" value="ADBE" >
</cfinvoke>
<cfoutput>
#SOAPResponse#
</cfoutput>
<cfcatch type="Any" >
<cfdump var="#cfcatch#" >
</cfcatch>
</cftry>
Actual Result:
The errors can vary, some that I have encountered are:
Using A public web service:
C:\ColdFusion10\cfusion\stubs\WS-2056965968_2\src\net\webservicex\www\ExtensionMapper.java:15: cannot access java.lang.SuppressWarnings bad class file: java\lang\SuppressWarnings.class(java\lang:SuppressWarnings.class) class file has wrong version 52.0, should be 50.0 Please remove or make sure it appears in the correct subdirectory of the classpath. @SuppressWarnings({"unchecked","unused"}) ^
COLUMN 0
ID ??
LINE -1
RAW_TRACE bad class file: java\lang\SuppressWarnings.class(java\lang:SuppressWarnings.class)
TEMPLATE java\lang
TYPE CFML
Using custom web service:
coldfusion.jsp.CompilationFailedException: Errors reported by Java compiler: C:\ColdFusion10\cfusion\stubs\WS-682373501_2\src\coldfusion\xml\rpc\xsd\ArrayDelegate.java:18: cannot access java.lang.Object bad class file: java\lang\Object.class(java\lang:Object.class) class file has wrong version 52.0, should be 50.0 Please remove or make sure it appears in the correct subdirectory of the classpath. public class ArrayDelegate ^ .
COLUMN 0
ID ??
LINE -1
RAW_TRACE bad class file: java\lang\Object.class(java\lang:Object.class)
TEMPLATE java\lang
TYPE CFML
Using custom web service enforcing WSVersion=1:
coldfusion.jsp.CompilationFailedException: Errors reported by Java compiler: C:\ColdFusion10\cfusion\stubs\WS-682373501_1\coldfusion\xml\rpc\CFCInvocationException.java:10: cannot access java.rmi.RemoteException bad class file: java\rmi\RemoteException.class(java\rmi:RemoteException.class) class file has wrong version 52.0, should be 50.0 Please remove or make sure it appears in the correct subdirectory of the classpath. public class CFCInvocationException extends org.apache.axis.AxisFault implements java.io.Serializable { ^ .
COLUMN 0
ID ??
LINE -1
RAW_TRACE bad class file: java\rmi\RemoteException.class(java\rmi:RemoteException.class)
TEMPLATE java\rmi
TYPE CFML
Expected Result:
XML
Any Workarounds:
For local services, l can use the CFinvoke take with the component argument to invoke the same web service that fails when compiling as a SOAP.
My Hardware and Environment details:
Server Product ColdFusion
Version 10,0,17,295085
Edition Developer
Operating System Windows 7
OS Version 6.1
Update Level /C:/ColdFusion10/cfusion/lib/updates/chf10000017.jar
Adobe Driver Version 4.1 (Build 0001)
AND
Server Product ColdFusion
Version ColdFusion 10,292620
Edition Standard
Operating System Windows Server 2008 R2
OS Version 6.1
Update Level /E:/ColdFusion10/cfusion/lib/updates/chf10000015.jar
Adobe Driver Version 4.1 (Build 0001)
I have also removed all stubs, and cleared all caches.
I have copied the tools.jar file from the Java 8 JDK into the {cfinstall}/lib directory.
Copy link to clipboard
Copied
Thanks for sharing this. I should add that the above code runs without any problems on Coldfusion 11.
Copy link to clipboard
Copied
As BKBK‌ has stated, if you download the current version of CF11 (which already has Java 8), things that break in CF10 (after a Java 8 update - even Java 7 u 31) run smoother. Apparently there are network security changes since Java 7 u 31 that deny certain network privileges. Updating CF10 broke so many things that it became unusable, for us. We had to keep to Java 7 u 25 until we could get CF11 approved.
HTH,
^_^