Thank you Jim - that did the trick.

> -----Original Message-----
> From: Jim O'Callaghan [mailto:jc1000...@yahoo.co.uk]
> Sent: 10 September 2010 14:45
> To: 'Tapestry users'
> Subject: RE: [T5.2] Classloader problem with a service
>
> Andy,
>
> I haven't tried this but apparently:
>
> public static void bind(ServiceBinder binder) {
>       binder.bind(MyInterface.class,
> MyImplementation.class).preventReloading();
> }
>
> ... should work - referenced here:
> http://tapestry.markmail.org/message/honjlvrqljdjparp?q=service+reload+
> disab
> le
>
> Regards,
> Jim.
> -----Original Message-----
> From: Blower, Andy [mailto:andy.blo...@proquest.co.uk]
> Sent: 10 September 2010 13:00
> To: 'Tapestry users'
> Subject: [T5.2] Classloader problem with a service
>
> Unfortunately we've got another T5.2 migration issue that I can't
> figure
> out. I wonder if this is to do with the service class reloading added
> in 5.2
> - is there a way of disabling it to check?
>
> I've posted the error trace below, basically a service
> (ScholarUniverseSearchEngine) is trying to create a class
> (ScholarUniverseResultsList) and failing because there seems to be 2
> different versions of the service in different classloaders. It's
> really
> puzzling because this service and class is copied from another that
> does the
> exact same thing and still works okay. I tried running it by deploying
> a war
> to a standalone tomcat, and it's fine. It just seems to be a problem
> when
> running from within Eclipse using runjettyrun. We'll try some more
> combinations out, but if anyone can help with this it would be great.
>
>
> ERROR [11:53:15,737] btpool0-6
> (services.TapestryModule.RequestExceptionHandler:62) - Processing of
> request
> failed with uncaught exception: loader constraint violation: when
> resolving
> method
> "com.proquest.apps.corelib.search.impl.scholaruniverse.ScholarUniverseR
> esult
> sList.<init>(Lcom/proquest/apps/corelib/search/QueryData;Ljava/lang/Str
> ing;L
> java/lang/String;Lcom/proquest/apps/corelib/search/impl/scholaruniverse
> /Scho
> larUniverseSearchEngine;Lcom/proquest/apps/corelib/config/ProductConfig
> ;)V"
> the class loader (instance of
> org/apache/tapestry5/ioc/internal/AbstractReloadableObjectCreator$Reloa
> dingC
> lassLoader) of the current class,
> com/proquest/apps/corelib/search/impl/scholaruniverse/ScholarUniverseSe
> archE
> ngine, and the class loader (instance of
> runjettyrun/ProjectClassLoader) for
> resolved class,
> com/proquest/apps/corelib/search/impl/scholaruniverse/ScholarUniverseRe
> sults
> List, have different Class objects for the type
> com/proquest/apps/corelib/search/impl/scholaruniverse/ScholarUniverseSe
> archE
> ngine used in the signature
> java.lang.LinkageError: loader constraint violation: when resolving
> method
> "com.proquest.apps.corelib.search.impl.scholaruniverse.ScholarUniverseR
> esult
> sList.<init>(Lcom/proquest/apps/corelib/search/QueryData;Ljava/lang/Str
> ing;L
> java/lang/String;Lcom/proquest/apps/corelib/search/impl/scholaruniverse
> /Scho
> larUniverseSearchEngine;Lcom/proquest/apps/corelib/config/ProductConfig
> ;)V"
> the class loader (instance of
> org/apache/tapestry5/ioc/internal/AbstractReloadableObjectCreator$Reloa
> dingC
> lassLoader) of the current class,
> com/proquest/apps/corelib/search/impl/scholaruniverse/ScholarUniverseSe
> archE
> ngine, and the class loader (instance of
> runjettyrun/ProjectClassLoader) for
> resolved class,
> com/proquest/apps/corelib/search/impl/scholaruniverse/ScholarUniverseRe
> sults
> List, have different Class objects for the type
> com/proquest/apps/corelib/search/impl/scholaruniverse/ScholarUniverseSe
> archE
> ngine used in the signature
>                 at
> com.proquest.apps.corelib.search.impl.scholaruniverse.ScholarUniverseSe
> archE
> ngine.executeSearch(ScholarUniverseSearchEngine.java:146)
>                 at
> $SearchEngine_12afb45d215.executeSearch($SearchEngine_12afb45d215.java)
>                 at
> Invocation$SearchEngine$executeSearch$12afb462907.invokeDelegateMethod(
> Invoc
> ation$SearchEngine$executeSearch$12afb462907.java)
>                 at
> org.apache.tapestry5.ioc.internal.services.AbstractInvocation.proceed(A
> bstra
> ctInvocation.java:124)
>                 at
> com.proquest.apps.onesearch.stats.ProfileAdvice.advise(ProfileAdvice.ja
> va:33
> )
>                 at
> org.apache.tapestry5.ioc.internal.services.AbstractInvocation.proceed(A
> bstra
> ctInvocation.java:128)
>                 at
> $SearchEngine_12afb45d216.executeSearch($SearchEngine_12afb45d216.java)
>                 at
> $SearchEngine_12afb45cd44.executeSearch($SearchEngine_12afb45cd44.java)
>                 at
> com.proquest.apps.onesearch.components.scholaruniverse.ScholarUniverseB
> asic.
> handleSearchFormSubmission(ScholarUniverseBasic.java:132)
>                 at
> com.proquest.apps.onesearch.components.scholaruniverse.ScholarUniverseB
> asic$
> MethodAccess_handleSearchFormSubmission_12afb45cd45.invoke(ScholarUnive
> rseBa
> sic$MethodAccess_handleSearchFormSubmission_12afb45cd45.java)
>                 at
> org.apache.tapestry5.internal.transform.BaseEventHandlerMethodInvoker.i
> nvoke
> EventHandlerMethod(BaseEventHandlerMethodInvoker.java:52)
>                 at
> org.apache.tapestry5.internal.transform.OnEventWorker$4.invokeEventHand
> lers(
> OnEventWorker.java:157)
>                 at
> org.apache.tapestry5.internal.transform.OnEventWorker$4.advise(OnEventW
> orker
> .java:136)
>                 at
> org.apache.tapestry5.internal.services.AbstractComponentMethodInvocatio
> n.pro
> ceed(AbstractComponentMethodInvocation.java:86)
>                 at
> com.proquest.apps.onesearch.components.scholaruniverse.ScholarUniverseB
> asic.
> dispatchComponentEvent(ScholarUniverseBasic.java)
>                 at
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispat
> chEve
> nt(ComponentPageElementImpl.java:942)
>                 at
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.proces
> sEven
> tTriggering(ComponentPageElementImpl.java:1132)
>                 at
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access
> $3000
> (ComponentPageElementImpl.java:72)
>                 at
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$7.invo
> ke(Co
> mponentPageElementImpl.java:1077)
>                 at
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$7.invo
> ke(Co
> mponentPageElementImpl.java:1074)
>                 at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(Operation
> Track
> erImpl.java:65)
>                 at
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerT
> hread
> OperationTracker.java:68)
>                 at
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java
> :1057
> )
>                 at
> org.apache.tapestry5.internal.structure.ComponentPageElementResourcesIm
> pl.in
> voke(ComponentPageElementResourcesImpl.java:141)
>                 at
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.trigge
> rCont
> extEvent(ComponentPageElementImpl.java:1073)
>                 at
> org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.
> trigg
> erContextEvent(InternalComponentResourcesImpl.java:287)
>                 at
> org.apache.tapestry5.corelib.components.Form._$advised$onAction(Form.ja
> va:54
> 8)
>                 at
> org.apache.tapestry5.corelib.components.Form$onAction$invocation_12afb4
> 63c82
> .invokeAdvisedMethod(Form$onAction$invocation_12afb463c82.java)
>                 at
> org.apache.tapestry5.internal.services.AbstractComponentMethodInvocatio
> n.pro
> ceed(AbstractComponentMethodInvocation.java:77)
>                 at
> org.apache.tapestry5.ioc.internal.services.LoggingAdvice.advise(Logging
> Advic
> e.java:37)
>                 at
> org.apache.tapestry5.internal.transform.LogWorker$1.advise(LogWorker.ja
> va:54
> )
>                 at
> org.apache.tapestry5.internal.services.AbstractComponentMethodInvocatio
> n.pro
> ceed(AbstractComponentMethodInvocation.java:86)
>                 at
> org.apache.tapestry5.corelib.components.Form.onAction(Form.java)
>                 at
> org.apache.tapestry5.corelib.components.Form$MethodAccess_onAction_12af
> b45cb
> 89.invoke(Form$MethodAccess_onAction_12afb45cb89.java)
>                 at
> org.apache.tapestry5.internal.transform.BaseEventHandlerMethodInvoker.i
> nvoke
> EventHandlerMethod(BaseEventHandlerMethodInvoker.java:52)
>                 at
> org.apache.tapestry5.internal.transform.OnEventWorker$4.invokeEventHand
> lers(
> OnEventWorker.java:157)
>                 at
> org.apache.tapestry5.internal.transform.OnEventWorker$4.advise(OnEventW
> orker
> .java:136)
>                 at
> org.apache.tapestry5.internal.services.AbstractComponentMethodInvocatio
> n.pro
> ceed(AbstractComponentMethodInvocation.java:86)
>                 at
> org.apache.tapestry5.corelib.components.Form.dispatchComponentEvent(For
> m.jav
> a)
>                 at
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispat
> chEve
> nt(ComponentPageElementImpl.java:950)
>                 at
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.proces
> sEven
> tTriggering(ComponentPageElementImpl.java:1132)
>                 at
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access
> $3000
> (ComponentPageElementImpl.java:72)
>                 at
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$7.invo
> ke(Co
> mponentPageElementImpl.java:1077)
>                 at
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$7.invo
> ke(Co
> mponentPageElementImpl.java:1074)
>                 at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(Operation
> Track
> erImpl.java:65)
>                 at
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerT
> hread
> OperationTracker.java:68)
>                 at
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java
> :1057
> )
>                 at
> org.apache.tapestry5.internal.structure.ComponentPageElementResourcesIm
> pl.in
> voke(ComponentPageElementResourcesImpl.java:141)
>                 at
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.trigge
> rCont
> extEvent(ComponentPageElementImpl.java:1073)
>                 at
> org.apache.tapestry5.internal.services.ComponentEventRequestHandlerImpl
> .hand
> le(ComponentEventRequestHandlerImpl.java:81)
>                 at
> org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFil
> ter.h
> andle(ImmediateActionRenderResponseFilter.java:42)
>                 at
> $ComponentEventRequestHandler_12afb45ccf0.handle($ComponentEventRequest
> Handl
> er_12afb45ccf0.java)
>                 at
> org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.jav
> a:42)
>                 at
> $ComponentEventRequestHandler_12afb45ccf0.handle($ComponentEventRequest
> Handl
> er_12afb45ccf0.java)
>                 at
> org.apache.tapestry5.services.TapestryModule$39.handle(TapestryModule.j
> ava:2
> 567)
>                 at
> $ComponentEventRequestHandler_12afb45ccf0.handle($ComponentEventRequest
> Handl
> er_12afb45ccf0.java)
>                 at
> $ComponentEventRequestHandler_12afb45ccec.handle($ComponentEventRequest
> Handl
> er_12afb45ccec.java)
>                 at
> org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminato
> r.han
> dleComponentEvent(ComponentRequestHandlerTerminator.java:43)
>                 at
> org.apache.tapestry5.services.InitializeActivePageName.handleComponentE
> vent(
> InitializeActivePageName.java:39)
>                 at
> $ComponentRequestHandler_12afb45cced.handleComponentEvent($ComponentReq
> uestH
> andler_12afb45cced.java)
>                 at
> $ComponentRequestHandler_12afb45cacb.handleComponentEvent($ComponentReq
> uestH
> andler_12afb45cacb.java)
>                 at
> org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatc
> h(Com
> ponentEventDispatcher.java:46)
>                 at
> $Dispatcher_12afb45cacc.dispatch($Dispatcher_12afb45cacc.java)
>                 at
> $Dispatcher_12afb45ca9c.dispatch($Dispatcher_12afb45ca9c.java)
>                 at
> org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.s
> ervic
> e(TapestryModule.java:320)
>                 at
> com.proquest.apps.corelib.AppCoreLibModule$13.service(AppCoreLibModule.
> java:
> 518)
>                 at
> $RequestFilter_12afb45ca9b.service($RequestFilter_12afb45ca9b.java)
>                 at
> $RequestHandler_12afb45ca9d.service($RequestHandler_12afb45ca9d.java)
>                 at
> com.proquest.apps.onesearch.services.OneSearchLocalizationFilter.servic
> e(One
> SearchLocalizationFilter.java:45)
>                 at
> $RequestFilter_12afb45ca9f.service($RequestFilter_12afb45ca9f.java)
>                 at
> $RequestFilter_12afb45ca97.service($RequestFilter_12afb45ca97.java)
>                 at
> $RequestHandler_12afb45ca9d.service($RequestHandler_12afb45ca9d.java)
>                 at
> org.apache.tapestry5.internal.services.RequestErrorFilter.service(Reque
> stErr
> orFilter.java:26)
>                 at
> $RequestHandler_12afb45ca9d.service($RequestHandler_12afb45ca9d.java)
>                 at
> org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.j
> ava:9
> 82)
>                 at
> $RequestHandler_12afb45ca9d.service($RequestHandler_12afb45ca9d.java)
>                 at
> org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.j
> ava:9
> 72)
>                 at
> $RequestHandler_12afb45ca9d.service($RequestHandler_12afb45ca9d.java)
>                 at
> org.apache.tapestry5.internal.services.StaticFilesFilter.service(Static
> Files
> Filter.java:90)
>                 at
> $RequestHandler_12afb45ca9d.service($RequestHandler_12afb45ca9d.java)
>                 at
> org.apache.tapestry5.internal.services.URLRewriterRequestFilter.service
> (URLR
> ewriterRequestFilter.java:50)
>                 at
> $RequestHandler_12afb45ca9d.service($RequestHandler_12afb45ca9d.java)
>                 at
> com.proquest.apps.onesearch.stats.STLRequestFilter.service(STLRequestFi
> lter.
> java:50)
>                 at
> $RequestFilter_12afb45ca9e.service($RequestFilter_12afb45ca9e.java)
>                 at
> $RequestFilter_12afb45ca98.service($RequestFilter_12afb45ca98.java)
>                 at
> $RequestHandler_12afb45ca9d.service($RequestHandler_12afb45ca9d.java)
>                 at
> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(C
> heckF
> orUpdatesFilter.java:90)
>                 at
> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(C
> heckF
> orUpdatesFilter.java:80)
>                 at
> org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(Concu
> rrent
> Barrier.java:85)
>                 at
> org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(Ch
> eckFo
> rUpdatesFilter.java:103)
>                 at
> $RequestHandler_12afb45ca9d.service($RequestHandler_12afb45ca9d.java)
>                 at
> $RequestHandler_12afb45ca91.service($RequestHandler_12afb45ca91.java)
>                 at
> org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerT
> ermin
> ator.service(TapestryModule.java:271)
>                 at
> org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:5
> 3)
>                 at
> $HttpServletRequestHandler_12afb45ca93.service($HttpServletRequestHandl
> er_12
> afb45ca93.java)
>                 at
> org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(Ignor
> edPat
> hsFilter.java:62)
>                 at
> $HttpServletRequestFilter_12afb45ca90.service($HttpServletRequestFilter
> _12af
> b45ca90.java)
>                 at
> $HttpServletRequestHandler_12afb45ca93.service($HttpServletRequestHandl
> er_12
> afb45ca93.java)
>                 at
> com.proquest.apps.onesearch.email.EmailHttpServletRequestFilter.service
> (Emai
> lHttpServletRequestFilter.java:73)
>                 at
> $HttpServletRequestFilter_12afb45ca8e.service($HttpServletRequestFilter
> _12af
> b45ca8e.java)
>                 at
> $HttpServletRequestHandler_12afb45ca93.service($HttpServletRequestHandl
> er_12
> afb45ca93.java)
>                 at
> com.proquest.apps.onesearch.services.SiteRedirectHttpServletRequestFilt
> er.se
> rvice(SiteRedirectHttpServletRequestFilter.java:45)
>                 at
> $HttpServletRequestFilter_12afb45ca8d.service($HttpServletRequestFilter
> _12af
> b45ca8d.java)
>                 at
> $HttpServletRequestHandler_12afb45ca93.service($HttpServletRequestHandl
> er_12
> afb45ca93.java)
>                 at
> org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.j
> ava:9
> 26)
>                 at
> $HttpServletRequestHandler_12afb45ca93.service($HttpServletRequestHandl
> er_12
> afb45ca93.java)
>                 at
> $HttpServletRequestHandler_12afb45ca8a.service($HttpServletRequestHandl
> er_12
> afb45ca8a.java)
>                 at
> org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:147)
>                 at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHa
> ndler
> .java:1084)
>                 at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360
> )
>                 at
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:
> 216)
>                 at
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181
> )
>                 at
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:722
> )
>                 at
> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:404)
>                 at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139
> )
>                 at org.mortbay.jetty.Server.handle(Server.java:324)
>                 at
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
>                 at
> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.
> java:
> 842)
>                 at
> org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
>                 at
> org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
>                 at
> org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
>                 at
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java
> :395)
>                 at
> org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.j
> ava:4
> 50)
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to