Tapestry 5.0.18/JBoss 4.2.3GA/Spring 2.5/Hibernate 3.2.4sp1 (coming with JBoss)JDK1.6.0_10/S
The following exception is thrown when hitting the Login page (interestingly, the Start page is fine) - there is additional information following it. The (emerging) application used to work before adding the Hibernate integration. No ClassLoaders found for: org.apache.tapestry5.services.FormSupport [at classpath:org/apache/tapestry5/corelib/components/ExceptionDisplay.tml, line 3, column 45] at org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:84) at org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:121) at $PageRenderQueue_11e4d1d2736.render($PageRenderQueue_11e4d1d2736.java) at $PageRenderQueue_11e4d1d2734.render($PageRenderQueue_11e4d1d2734.java) at org.apache.tapestry5.services.TapestryModule$19.renderMarkup(TapestryModule.java:1200) at org.apache.tapestry5.services.TapestryModule$29.renderMarkup(TapestryModule.java:1580) at $MarkupRenderer_11e4d1d273a.renderMarkup($MarkupRenderer_11e4d1d273a.java) at org.apache.tapestry5.services.TapestryModule$28.renderMarkup(TapestryModule.java:1561) at $MarkupRenderer_11e4d1d273a.renderMarkup($MarkupRenderer_11e4d1d273a.java) at org.apache.tapestry5.services.TapestryModule$27.renderMarkup(TapestryModule.java:1543) at $MarkupRenderer_11e4d1d273a.renderMarkup($MarkupRenderer_11e4d1d273a.java) at org.apache.tapestry5.services.TapestryModule$26.renderMarkup(TapestryModule.java:1525) at $MarkupRenderer_11e4d1d273a.renderMarkup($MarkupRenderer_11e4d1d273a.java) at org.apache.tapestry5.services.TapestryModule$25.renderMarkup(TapestryModule.java:1495) at $MarkupRenderer_11e4d1d273a.renderMarkup($MarkupRenderer_11e4d1d273a.java) at $MarkupRenderer_11e4d1d2733.renderMarkup($MarkupRenderer_11e4d1d2733.java) at org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:64) at $PageMarkupRenderer_11e4d1d2731.renderPageMarkup($PageMarkupRenderer_11e4d1d2731.java) at org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:57) at $PageResponseRenderer_11e4d1d2701.renderPageResponse($PageResponseRenderer_11e4d1d2701.java) at org.apache.tapestry5.internal.services.DefaultRequestExceptionHandler.handleRequestException(DefaultRequestExceptionHandler.java:77) at $RequestExceptionHandler_11e4d1d26ef.handleRequestException($RequestExceptionHandler_11e4d1d26ef.java) at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:42) at $RequestHandler_11e4d1d26f1.service($RequestHandler_11e4d1d26f1.java) at org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:621) at $RequestHandler_11e4d1d26f1.service($RequestHandler_11e4d1d26f1.java) at org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:611) at $RequestHandler_11e4d1d26f1.service($RequestHandler_11e4d1d26f1.java) at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85) at $RequestHandler_11e4d1d26f1.service($RequestHandler_11e4d1d26f1.java) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:93) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:84) at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:83) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106) at $RequestHandler_11e4d1d26f1.service($RequestHandler_11e4d1d26f1.java) at $RequestHandler_11e4d1d26e8.service($RequestHandler_11e4d1d26e8.java) at org.apache.tapestry5.services.TapestryModule$16.service(TapestryModule.java:1007) at org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44) at $HttpServletRequestHandler_11e4d1d26e9.service($HttpServletRequestHandler_11e4d1d26e9.java) at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) at $HttpServletRequestFilter_11e4d1d26e6.service($HttpServletRequestFilter_11e4d1d26e6.java) at $HttpServletRequestHandler_11e4d1d26e9.service($HttpServletRequestHandler_11e4d1d26e9.java) at $HttpServletRequestHandler_11e4d1d26e5.service($HttpServletRequestHandler_11e4d1d26e5.java) at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:179) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) at java.lang.Thread.run(Thread.java:619) Caused by: org.apache.tapestry5.ioc.internal.util.TapestryException: No ClassLoaders found for: org.apache.tapestry5.services.FormSupport [at classpath:org/apache/tapestry5/corelib/components/ExceptionDisplay.tml, line 3, column 45] at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:932) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$200(ComponentPageElementImpl.java:50) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$13.render(ComponentPageElementImpl.java:499) at org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:72) ... 61 more Caused by: java.lang.RuntimeException: No ClassLoaders found for: org.apache.tapestry5.services.FormSupport at javassist.runtime.Desc.getClassType(Desc.java:156) at javassist.runtime.Desc.getType(Desc.java:122) at javassist.runtime.Desc.getType(Desc.java:78) at org.apache.tapestry5.corelib.components.Loop._$environment_read_formSupport(Loop.java) at org.apache.tapestry5.corelib.components.Loop.setup(Loop.java:273) at org.apache.tapestry5.corelib.components.Loop.setupRender(Loop.java) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$13$1.run(ComponentPageElementImpl.java:495) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:917) ... 64 more I found http://blog.progs.be/?p=52 and followed the advice, but no luck. VERY surprisingly, there are no ~~~ in server.log (also tried with a breakpoint). I'm stumped. public class AppModule { static { javassist.runtime.Desc.useContextClassLoader = true; System.out.println("~~~~~~~~~~"); //this is not executed! } } The Tapestry root package is correctly configured (and AppModule is in its services subdirectory) - the few Tapestry pages, including the Login one, used to work before adding Hibernate. Javassist comes in the picture because Hibernate uses it as a bytecode provider when under JBoss: hibernate.cfg.xml: <hibernate-configuration> <session-factory> <property name="hibernate.bytecode.provider">javassist</property> So I know AppModule is not loaded (but is deployed, I checked). And to clarify, I'm not deploying Hibernate or Javassist as part of my app, they come with JBoss. (As a side note, I did try to use the latest Hibernate but that ran into other conflicts with T5 which I'll post another time, for now I'm trying with the packaged Hibernate). I searched and again went through the T5 book to see if I need to do anything special to get AppModule to be consided by Tapestry, but there's no such mention, it seems it should be handled by convention-over-configuration. Help is very appreciated, JL