zhyh1105 / run-jetty-run

Automatically exported from code.google.com/p/run-jetty-run
0 stars 0 forks source link

issues with Tapestry5 #4

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
There seem to be a problem with Tapestry5 apps loading org.slf4j.Logger 
class when using either patched jetty launcher (to support jetty6) or run-
jetty-run eclipse plugin. It does not happen with official jetty launcher 
& jetty5 (although the official jetty launcher doesn't support java6). 
Also it doesn't seem to be jetty6 specific issue because when running 
jetty with mvn jetty:run the exception is NOT thrown.
> An unexpected application exception has occurred.
>     * java.lang.RuntimeException
>       java.lang.ClassNotFoundException: caught an exception while 
obtaining a class file for org.example.myapp.pages.Start
>     * java.lang.ClassNotFoundException
>       caught an exception while obtaining a class file for 
org.example.myapp.pages.Start
>       exception
>           org.apache.tapestry.internal.services.TransformationException: 
Error obtaining injected value for field 
org.example.myapp.pages.Start.logger: java.lang.ClassNotFoundException: 
org.slf4j.Logger 
>     * org.apache.tapestry.internal.services.TransformationException
>       Error obtaining injected value for field 
org.example.myapp.pages.Start.logger: java.lang.ClassNotFoundException: 
org.slf4j.Logger
> #  java.lang.ClassNotFoundException
> org.slf4j.Logger
> Stack trace
>         * java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>         * java.security.AccessController.doPrivileged(Native Method)
>         * java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>         * 
org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:366)
>         * 
org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:337)
>         * javassist.Loader.delegateToParent(Loader.java:428)
>         * javassist.Loader.loadClass(Loader.java:314)
>         * java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>         * java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>         * java.lang.Class.forName0(Native Method)
>         * java.lang.Class.forName(Class.java:247)
>         * 
org.apache.tapestry.internal.services.InternalClassTransformationImpl.toClass(In
ternalClassTransformationImpl.java:1461)
>         * 
org.apache.tapestry.internal.services.InjectWorker.transform(InjectWorker.java:5
4)
>         * 
org.apache.tapestry.internal.services.ComponentClassTransformerImpl.transformCom
ponentClass(ComponentClassTransformerImpl.java:141)
>         * 
org.apache.tapestry.internal.services.ComponentInstantiatorSourceImpl.onLoad(Com
ponentInstantiatorSourceImpl.java:163)
>         * javassist.Loader.findClass(Loader.java:340)
>         * 
org.apache.tapestry.internal.services.ComponentInstantiatorSourceImpl$PackageAwa
reLoader.findClass(ComponentInstantiatorSourceImpl.java:74)
>         * javassist.Loader.loadClass(Loader.java:311)
>         * java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>         * 
org.apache.tapestry.internal.services.ComponentInstantiatorSourceImpl.findClass(
ComponentInstantiatorSourceImpl.java:236)
>         * 
org.apache.tapestry.internal.services.ComponentInstantiatorSourceImpl.findInstan
tiator(ComponentInstantiatorSourceImpl.java:222)
>         * 
org.apache.tapestry.internal.services.PageElementFactoryImpl.newRootComponentEle
ment(PageElementFactoryImpl.java:309)
>         * 
org.apache.tapestry.internal.services.PageLoaderProcessor.loadRootComponent(Page
LoaderProcessor.java:354)
>         * 
org.apache.tapestry.internal.services.PageLoaderProcessor.loadPage(PageLoaderPro
cessor.java:339)
>         * 
org.apache.tapestry.internal.services.PageLoaderImpl.loadPage(PageLoaderImpl.jav
a:60)
>         * 
org.apache.tapestry.internal.services.PagePoolImpl.checkout(PagePoolImpl.java:69
)
>         * 
org.apache.tapestry.internal.services.RequestPageCacheImpl.get(RequestPageCacheI
mpl.java:43)
>         * 
org.apache.tapestry.internal.services.PageRenderRequestHandlerImpl.handle(PageRe
nderRequestHandlerImpl.java:55)
>         * 
org.apache.tapestry.internal.services.RootPathDispatcher.dispatch(RootPathDispat
cher.java:52)
>         * 
org.apache.tapestry.services.TapestryModule$12.service(TapestryModule.java:905)
>         * 
org.example.myapp.services.AppModule$1.service(AppModule.java:92)
>         * 
org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFil
ter.java:43)
>         * 
org.apache.tapestry.services.TapestryModule$2.service(TapestryModule.java:487)
>         * 
org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilte
r.java:79)
>         * 
org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpd
atesFilter.java:94)
>         * 
org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpd
atesFilter.java:85)
>         * 
org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarri
er.java:77)
>         * 
org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(CheckForUpda
tesFilter.java:107)
>         * 
org.apache.tapestry.services.TapestryModule$11.service(TapestryModule.java:888)
>         * 
org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:164)
>         * 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.jav
a:1084)
>         * 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
>         * 
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>         * 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>         * 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:722)
>         * 
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:404)
>         * 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
>         * org.mortbay.jetty.Server.handle(Server.java:324)
>         * 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
>         * 
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.ja
va:828)
>         * org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
>         * 
org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
>         * 
org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
>         * 
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
>         * 
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)

Original issue reported on code.google.com by standa.k...@gmail.com on 23 Jan 2008 at 7:26

GoogleCodeExporter commented 9 years ago
Did you try including slf4j? I just looked at possible missing dependencies, 
but I can't find anything obvious. And 
I'm not crazy about the idea of just randomly including jars that are not even 
packaged with Jetty.

If you can figure out what misses, I'd be happy to apply a patch.

Original comment by eelco.hi...@gmail.com on 3 Feb 2008 at 6:21

GoogleCodeExporter commented 9 years ago
Another issue with T5.

If you include T5 in your workspace and Maven plugin resolves it as a 
dependency, you
will have another org.mortbay.jetty.Server in your classpath (from selenium). 
This
version is not compatible with runjettyrun Bootstrap.

So, in debug dialog, be sure to set your workspace source folder after 
runjettyrun
jars on classpath tab.

Original comment by gabriel.landais@gmail.com on 5 Mar 2008 at 2:59

GoogleCodeExporter commented 9 years ago
In the VM argsuments of the lauch config add:
-Dorg.mortbay.jetty.webapp.parentLoaderPriority=true

Seemed to work for me.

Original comment by goo...@azudio.co.uk on 20 Mar 2008 at 7:20

GoogleCodeExporter commented 9 years ago
>So, in debug dialog, be sure to set your workspace source folder after 
runjettyrun

That sounds like it fixes the problem for you, but I just do not understand 
what to
do. I think the debug dialog means the debug/run configuration of rjr, but how 
can
you influence the order of dependency resolving there? Would not the two 
versions
conflict anyway? I tried the argument below as well, apparently did not change
anything. Thanks for helping.

Original comment by mich...@googlemail.com on 2 Apr 2008 at 8:24

GoogleCodeExporter commented 9 years ago
Under classpath tab (plugin run/debug options) you can select the order in which
"User entries" are added to the classpath.

Original comment by mluse...@gmail.com on 2 May 2008 at 9:14

GoogleCodeExporter commented 9 years ago
This may be because of:
http://jira.codehaus.org/browse/JETTY-574
Fix version is 6.1.7 and current version in run-jetty-run is 6.1.6 .

Original comment by simonhar...@hotmail.com on 14 Nov 2008 at 3:27

GoogleCodeExporter commented 9 years ago
I think it's a old issue and still need more info to verify this.

Original comment by tonylovejava on 11 Mar 2011 at 8:45

GoogleCodeExporter commented 9 years ago

Original comment by tonylovejava on 1 Jul 2011 at 8:34