An exception occurred while instantiating a Java object. The class should not be an interface or an abstract class. Error: javax / mail / Store

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
+4
1

, - javax.mail.Store, . , , .

, ​​ coldfusion, WEB-INF/, WEB-INF/lib.

EE , WEB-INF/classes/WEB-INF/lib. , , ( Tomcat websphere ..).

Coldfusion Java 7, JHades , , .

, :

  • java.mail.Store

  • , ,

  • (javax.mail.Store , ) , , (JHades )

  • , ..

+4

All Articles