If you need a page instance, you need to go through the appropriate
Tapestry services ... unfortunately, some of them are internal.
Nonetheless, Tapestry enforces a specific lifecycle on Tapestry pages
and components and if you attempt to instantiate them directly you
will fail.

If you have common logic, put it in services, not on pages if at all
possible.  That's what the IoC container if for.  Pages should be thin
layers between the world of HTML and HTTP and the world of services
(whether T5 IoC, Spring or other).

On Dec 6, 2007 10:35 AM, Britske <[EMAIL PROTECTED]> wrote:
>
> I created a class PageRegistry and defined it in Spring. I use @Inject to
> inject the singleton-instance of this class. (This worked before with other
> classes).
>
> in the constructor of PageRegistry I fill a map with page-instances. (So
> that i can access some methods of a page when  I dont have access to a
> specific instance, ad having static-methods  doesn't cut it. )
>
> At that point I get a violates loader constraints-error on component
> QuickFormAllResults. (A component which is contained by a couple of those
> pages).
>
> What's happing here? Is instantiating page-instances in a ioc-injected
> class-instance impossible or something?
>
> Thanks,
> Geert-Jan
>
> complete stacktrace:
> java.lang.LinkageError: Class <cut>/components/QuickFormAllResults violates
> loader constraints
>         at java.lang.ClassLoader.defineClass1(Native Method)
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:465)
>         at javassist.Loader.findClass(Loader.java:379)
>         at
> org.apache.tapestry.internal.services.ComponentInstantiatorSourceImpl$PackageAwareLoader.findClass(ComponentInstantiatorSourceImpl.java:85)
>         at javassist.Loader.loadClass(Loader.java:311)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>         at
> org.apache.tapestry.internal.services.ComponentInstantiatorSourceImpl.findClass(ComponentInstantiatorSourceImpl.java:254)
>         at
> org.apache.tapestry.internal.services.ComponentInstantiatorSourceImpl.findInstantiator(ComponentInstantiatorSourceImpl.java:240)
>         at
> $ComponentInstantiatorSource_116b0b3a7be.findInstantiator($ComponentInstantiatorSource_116b0b3a7be.java)
>         at
> org.apache.tapestry.internal.services.PageElementFactoryImpl.newComponentElement(PageElementFactoryImpl.java:268)
>         at
> $PageElementFactory_116b0b3a7e8.newComponentElement($PageElementFactory_116b0b3a7e8.java)
>         at
> org.apache.tapestry.internal.services.PageLoaderProcessor.startComponent(PageLoaderProcessor.java:618)
>         at
> org.apache.tapestry.internal.services.PageLoaderProcessor.loadTemplateForComponent(PageLoaderProcessor.java:498)
>         at
> org.apache.tapestry.internal.services.PageLoaderProcessor.workComponentQueue(PageLoaderProcessor.java:714)
>         at
> org.apache.tapestry.internal.services.PageLoaderProcessor.loadPage(PageLoaderProcessor.java:392)
>         at
> org.apache.tapestry.internal.services.PageLoaderImpl.loadPage(PageLoaderImpl.java:59)
>         at $PageLoader_116b0b3a7e6.loadPage($PageLoader_116b0b3a7e6.java)
>         at
> org.apache.tapestry.internal.services.PagePoolImpl.checkout(PagePoolImpl.java:70)
>         at $PagePool_116b0b3a7e5.checkout($PagePool_116b0b3a7e5.java)
>         at
> org.apache.tapestry.internal.services.RequestPageCacheImpl.get(RequestPageCacheImpl.java:44)
>         at 
> $RequestPageCache_116b0b3a7e4.get($RequestPageCache_116b0b3a7e4.java)
>         at 
> $RequestPageCache_116b0b3a7bb.get($RequestPageCache_116b0b3a7bb.java)
>         at
> org.apache.tapestry.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:55)
>         at
> $PageRenderRequestHandler_116b0b3a7dd.handle($PageRenderRequestHandler_116b0b3a7dd.java)
>         at
> org.apache.tapestry.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:72)
>         at $Dispatcher_116b0b3a7e0.dispatch($Dispatcher_116b0b3a7e0.java)
>         at $Dispatcher_116b0b3a7d3.dispatch($Dispatcher_116b0b3a7d3.java)
>         at
> org.apache.tapestry.services.TapestryModule$13.service(TapestryModule.java:1108)
>         at com.wrappt.aroer.services.AppModule$3.service(AppModule.java:194)
>         at $RequestFilter_116b0b3a7d1.service($RequestFilter_116b0b3a7d1.java)
>         at 
> $RequestHandler_116b0b3a7d4.service($RequestHandler_116b0b3a7d4.java)
>         at com.wrappt.aroer.services.AppModule$4.service(AppModule.java:215)
>         at $RequestFilter_116b0b3a7d2.service($RequestFilter_116b0b3a7d2.java)
>         at 
> $RequestHandler_116b0b3a7d4.service($RequestHandler_116b0b3a7d4.java)
>         at
> org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFilter.java:43)
>         at 
> $RequestHandler_116b0b3a7d4.service($RequestHandler_116b0b3a7d4.java)
>         at
> org.apache.tapestry.services.TapestryModule$2.service(TapestryModule.java:688)
>         at 
> $RequestHandler_116b0b3a7d4.service($RequestHandler_116b0b3a7d4.java)
>         at
> org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:84)
>         at 
> $RequestHandler_116b0b3a7d4.service($RequestHandler_116b0b3a7d4.java)
>         at
> org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:97)
>         at
> org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:88)
>         at
> org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77)
>         at
> org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:110)
>         at 
> $RequestHandler_116b0b3a7d4.service($RequestHandler_116b0b3a7d4.java)
>         at 
> $RequestHandler_116b0b3a7cb.service($RequestHandler_116b0b3a7cb.java)
>         at
> org.apache.tapestry.services.TapestryModule$12.service(TapestryModule.java:1086)
>         at
> $HttpServletRequestHandler_116b0b3a7ca.service($HttpServletRequestHandler_116b0b3a7ca.java)
>         at 
> org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:135)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>         at
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>         at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>         at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>         at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
>         at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>         at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>         at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
>         at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
>         at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
>         at
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
>         at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
>         at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
>         at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
>         at java.lang.Thread.run(Thread.java:595)
> --
> View this message in context: 
> http://www.nabble.com/t5%3A-violates-loader-constraints-error-when-loading-pages-into-ioc-injected-class-instance-tf4957822.html#a14198391
> Sent from the Tapestry - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>



-- 
Howard M. Lewis Ship
TWD Consulting, Inc.

Creator Apache Tapestry and Apache HiveMind

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to