I have a workaround for my specific error, which is to add the path C:\ColdFusion10\cfusion\wwwroot\WEB-INF\classesto the Path Path parameter for ColdFusion. However, I do not know why this is necessary. Details below:
I use the legacy [I don't know who wrote it or where it came from) Java class in ColdFusion 9 to read and parse mailbox files. When I switched to ColdFusion 10, it stopped working. Here is a quick example:
<cfset archive = createObject("Java", "its.util.MBoxReader")>
<cfdump var="#archive#">
In CF9, that works. On CF10, it displays this message:
Object instance exception. An exception occurred while instantiating a Java object. The class should not be an interface or an abstract class. Error: javax / mail / Store.
Here's the stack trace:
java.lang.NoClassDefFoundError: javax/mail/ java.lang.Class.getDeclaredFields0 ( ) java.lang.Class.privateGetDeclaredFields(Class.java:2317) java.lang.Class.privateGetPublicFields(Class.java:2350) java.lang.Class.getFields(Class.java:1378) coldfusion.runtime.java.ObjectHandler.Initialize(ObjectHandler.java:35) coldfusion.runtime.java.ObjectHandler. (ObjectHandler.java:30) coldfusion.runtime.java.ReflectionCache.get(ReflectionCache.java:38) at coldfusion.runtime.java.JavaProxy. (JavaProxy.java:35) at coldfusion.runtime.java.JavaProxyFactory.getProxy(JavaProxyFactory.java:121) coldfusion.runtime.ProxyFactory.getProxy(ProxyFactory.java:65) coldfusion.runtime.CFPage.createObjectProxy(CFPage.java:5757) coldfusion.runtime.CFPage.CreateObject(CFPage.java:5720) coldfusion.runtime.CFPage.CreateObject(CFPage.java:5654) coldfusion.runtime.CFPage.CreateObject(CFPage.java:5629) coldfusion.runtime.CFPage.CreateObject(CFPage.java:5576) cfindex2ecfm915725705.runPage(C:\ColdFusion10\cfusion\Wwwroot\Mbox\index.cfm: 1) at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:244) coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:444) coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65) coldfusion.filter.IpFilter.invoke(IpFilter.java:64) coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:449) coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48) coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40) coldfusion.filter.PathFilter.invoke(PathFilter.java:112) coldfusion.filter.LicenseFilter.invoke(LicenseFilter.java:30) coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:94) coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:79) coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28) at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38) coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46) coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38) coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62) coldfusion.CfmServlet.service(CfmServlet.java:219) coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42) coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:414) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) org.apache.coyote.AbstractProtocol $AbstractConnectionHandler.process(AbstractProtocol.java:539) org.apache.tomcat.util.net.JIoEndpoint $SocketProcessor.run(JIoEndpoint.java:298) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) java.util.concurrent.ThreadPoolExecutor $Worker.run(ThreadPoolExecutor.java:615) java.lang.Thread.run(Thread.java:722) : java.lang.ClassNotFoundException: javax.mail.Store at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533) ... 55
, , CF10 javax.mail.Store:
<cfset store = createObject("Java", "javax.mail.Store")>
<cfdump var="#store#">
javax.mail.Store mail.jar, ColdFusion, C:\ColdFusion9\lib C:\ColdFusion10\cfusion\lib CF9 CF10 .
MboxReader.class C:\ColdFusion9\wwwroot\WEB-INF\classes\its\util C:\ColdFusion10\cfusion\wwwroot\WEB-INF\classes\its\util (CF9 CF10 ).
C:\ColdFusion10\cfusion\wwwroot\WEB-INF\classes ColdFusion CF-, .
, ColdFusion , MboxReader , . ColdFusion, Java J2EE, ColdFusion WEB-INF/classes.
Update:
archive:
coldfusion.bootstrap.BootstrapClassLoader
javax.mail.Store:
org.apache.catalina.loader.WebappClassLoader