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

Reply via email to