On 1/02/10 10:42 PM, barrymac wrote:
Thanks for the reply! I'm using gradle version 0.9-20100113100310 unmodified.
I'm applying gradle to an existing project structure so the conventional
directory is not there. Just to reproduce the problem though now I created
and copied the web directory to the conventional location src/main/webapp.
I would like to set the webAppSourceDirectory to the right location and I
tired the following but it doesn't seem to work as I expected:
jettyRun {
webAppSourceDirectory = new File('./web')
}
The problem with doing this is that the jettyRun task also needs to know
that the web.xml is in the 'web' directory, rather than in the default
location. And you'll have to configure the war task in a similar way.
The preferred way of defining the web app layout is to do it at the
project level:
webAppDirName = 'web'
This way, all web app aware tasks (jettyRun, war, etc) will use the
correct locations.
I get the following stack trace with conventional directory in place:
Which version of Java are you using?
Failed startup of context
org.gradle.api.plugins.jetty.internal.JettyPluginWebAp
pcont...@1a5e4e4{/webauth,C:\Documents and Settings\barry.macmahon\My
Documents\
development\parentproject\webauth\src\main\webapp}
java.lang.reflect.InvocationTargetException: null
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at
org.gradle.api.plugins.jetty.internal.JettyConfiguration.parseAnnotat
ions(JettyConfiguration.java:124)
at
org.mortbay.jetty.plus.webapp.AbstractConfiguration.configure(Abstrac
tConfiguration.java:119)
at
org.mortbay.jetty.webapp.WebXmlConfiguration.configureWebApp(WebXmlCo
nfiguration.java:180)
at
org.mortbay.jetty.plus.webapp.AbstractConfiguration.configureWebApp(A
bstractConfiguration.java:96)
at
org.mortbay.jetty.plus.webapp.Configuration.configureWebApp(Configura
tion.java:149)
at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.jav
a:1247)
at
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:
517)
at
org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467
)
at
org.gradle.api.plugins.jetty.internal.JettyPluginWebAppContext.doStar
t(JettyPluginWebAppContext.java:112)
at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
50)
at
org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection
.java:152)
at
org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHan
dlerCollection.java:156)
at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
50)
at
org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection
.java:152)
at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
50)
at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:
130)
at org.mortbay.jetty.Server.doStart(Server.java:224)
at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
50)
at
org.gradle.api.plugins.jetty.internal.Jetty6PluginServer.start(Jetty6
PluginServer.java:111)
at
org.gradle.api.plugins.jetty.AbstractJettyRunTask.startJettyInternal(
AbstractJettyRunTask.java:248)
at
org.gradle.api.plugins.jetty.AbstractJettyRunTask.startJetty(Abstract
JettyRunTask.java:202)
at
org.gradle.api.plugins.jetty.AbstractJettyRunTask.start(AbstractJetty
RunTask.java:173)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at
org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:
88)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:706)
at org.gradle.api.DefaultTask.invokeMethod(DefaultTask.groovy)
at groovy.lang.GroovyObject$invokeMethod$0.call(Unknown Source)
at org.gradle.util.ReflectionUtil.invoke(ReflectionUtil.groovy:25)
at
org.gradle.api.internal.project.AnnotationProcessingTaskFactory$2.exe
cute(AnnotationProcessingTaskFactory.java:125)
at
org.gradle.api.internal.project.AnnotationProcessingTaskFactory$2.exe
cute(AnnotationProcessingTaskFactory.java:124)
at
org.gradle.api.internal.tasks.DefaultTaskExecuter.executeActions(Defa
ultTaskExecuter.java:56)
at
org.gradle.api.internal.tasks.DefaultTaskExecuter.execute(DefaultTask
Executer.java:42)
at
org.gradle.api.internal.project.ExecutionShortCircuitTaskExecuter.exe
cute(ExecutionShortCircuitTaskExecuter.java:63)
at
org.gradle.api.internal.tasks.SkipTaskExecuter.doExecute(SkipTaskExec
uter.java:61)
at
org.gradle.api.internal.tasks.SkipTaskExecuter.execute(SkipTaskExecut
er.java:35)
at
org.gradle.api.internal.AbstractTask.execute(AbstractTask.java:206)
at
org.gradle.execution.DefaultTaskGraphExecuter.executeTask(DefaultTask
GraphExecuter.java:167)
at
org.gradle.execution.DefaultTaskGraphExecuter.doExecute(DefaultTaskGr
aphExecuter.java:160)
at
org.gradle.execution.DefaultTaskGraphExecuter.execute(DefaultTaskGrap
hExecuter.java:78)
at
org.gradle.execution.TaskNameResolvingBuildExecuter.execute(TaskNameR
esolvingBuildExecuter.java:161)
at
org.gradle.execution.DelegatingBuildExecuter.execute(DelegatingBuildE
xecuter.java:54)
at org.gradle.GradleLauncher.doBuildStages(GradleLauncher.java:198)
at org.gradle.GradleLauncher.doBuild(GradleLauncher.java:133)
at org.gradle.GradleLauncher.run(GradleLauncher.java:103)
at org.gradle.launcher.Main.execute(Main.java:93)
at org.gradle.launcher.Main.main(Main.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at org.gradle.launcher.GradleMain.main(GradleMain.java:54)
Caused by: java.lang.NoClassDefFoundError: javax/annotation/Resource
at
org.mortbay.jetty.annotations.AnnotationCollection.processMethodResou
rceAnnotations(AnnotationCollection.java:296)
at
org.mortbay.jetty.annotations.AnnotationCollection.processResourceAnn
otations(AnnotationCollection.java:180)
at
org.mortbay.jetty.annotations.AnnotationParser.parseAnnotations(Annot
ationParser.java:97)
... 61 common frames omitted
Nested in java.lang.reflect.InvocationTargetException:
java.lang.NoClassDefFoundError: javax/annotation/Resource
at
org.mortbay.jetty.annotations.AnnotationCollection.processMethodResou
rceAnnotations(AnnotationCollection.java:296)
at
org.mortbay.jetty.annotations.AnnotationCollection.processResourceAnn
otations(AnnotationCollection.java:180)
at
org.mortbay.jetty.annotations.AnnotationParser.parseAnnotations(Annot
ationParser.java:97)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at
org.gradle.api.plugins.jetty.internal.JettyConfiguration.parseAnnotat
ions(JettyConfiguration.java:124)
at
org.mortbay.jetty.plus.webapp.AbstractConfiguration.configure(Abstrac
tConfiguration.java:119)
at
org.mortbay.jetty.webapp.WebXmlConfiguration.configureWebApp(WebXmlCo
nfiguration.java:180)
at
org.mortbay.jetty.plus.webapp.AbstractConfiguration.configureWebApp(A
bstractConfiguration.java:96)
at
org.mortbay.jetty.plus.webapp.Configuration.configureWebApp(Configura
tion.java:149)
at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.jav
a:1247)
at
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:
517)
at
org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467
)
at
org.gradle.api.plugins.jetty.internal.JettyPluginWebAppContext.doStar
t(JettyPluginWebAppContext.java:112)
at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
50)
at
org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection
.java:152)
at
org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHan
dlerCollection.java:156)
at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
50)
at
org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection
.java:152)
at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
50)
at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:
130)
at org.mortbay.jetty.Server.doStart(Server.java:224)
at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
50)
at
org.gradle.api.plugins.jetty.internal.Jetty6PluginServer.start(Jetty6
PluginServer.java:111)
at
org.gradle.api.plugins.jetty.AbstractJettyRunTask.startJettyInternal(
AbstractJettyRunTask.java:248)
at
org.gradle.api.plugins.jetty.AbstractJettyRunTask.startJetty(Abstract
JettyRunTask.java:202)
at
org.gradle.api.plugins.jetty.AbstractJettyRunTask.start(AbstractJetty
RunTask.java:173)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at
org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:
88)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:706)
at org.gradle.api.DefaultTask.invokeMethod(DefaultTask.groovy)
at groovy.lang.GroovyObject$invokeMethod$0.call(Unknown Source)
at org.gradle.util.ReflectionUtil.invoke(ReflectionUtil.groovy:25)
at
org.gradle.api.internal.project.AnnotationProcessingTaskFactory$2.exe
cute(AnnotationProcessingTaskFactory.java:125)
at
org.gradle.api.internal.project.AnnotationProcessingTaskFactory$2.exe
cute(AnnotationProcessingTaskFactory.java:124)
at
org.gradle.api.internal.tasks.DefaultTaskExecuter.executeActions(Defa
ultTaskExecuter.java:56)
at
org.gradle.api.internal.tasks.DefaultTaskExecuter.execute(DefaultTask
Executer.java:42)
at
org.gradle.api.internal.project.ExecutionShortCircuitTaskExecuter.exe
cute(ExecutionShortCircuitTaskExecuter.java:63)
at
org.gradle.api.internal.tasks.SkipTaskExecuter.doExecute(SkipTaskExec
uter.java:61)
at
org.gradle.api.internal.tasks.SkipTaskExecuter.execute(SkipTaskExecut
er.java:35)
at
org.gradle.api.internal.AbstractTask.execute(AbstractTask.java:206)
at
org.gradle.execution.DefaultTaskGraphExecuter.executeTask(DefaultTask
GraphExecuter.java:167)
at
org.gradle.execution.DefaultTaskGraphExecuter.doExecute(DefaultTaskGr
aphExecuter.java:160)
at
org.gradle.execution.DefaultTaskGraphExecuter.execute(DefaultTaskGrap
hExecuter.java:78)
at
org.gradle.execution.TaskNameResolvingBuildExecuter.execute(TaskNameR
esolvingBuildExecuter.java:161)
at
org.gradle.execution.DelegatingBuildExecuter.execute(DelegatingBuildE
xecuter.java:54)
at org.gradle.GradleLauncher.doBuildStages(GradleLauncher.java:198)
at org.gradle.GradleLauncher.doBuild(GradleLauncher.java:133)
at org.gradle.GradleLauncher.run(GradleLauncher.java:103)
at org.gradle.launcher.Main.execute(Main.java:93)
at org.gradle.launcher.Main.main(Main.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at org.gradle.launcher.GradleMain.main(GradleMain.java:54)
Adam Murdoch-2 wrote:
On 28/01/10 10:21 PM, barrymac wrote:
Hi there,
In order to first get the plugin to work I had to set the
webAppSourceDirectory to build/jetty/webapp which is where the exploded
webapp seems to end up. But I found this only by trial and error.
The build/jetty directory is the temporary directory that jetty creates
to cache things such as compiled jsps. You shouldn't be pointing
webAppSourceDirectory at it.
In fact, you shouldn't have to change anything if you are following the
convention for web application layout. What was going wrong before you
changed the webAppSourceDirectory property?
Now I get a
java.lang.NoClassDefFoundError: javax/annotation/Resource
at
org.mortbay.jetty.annotations.AnnotationCollection.processMethodResourceAnnotations(AnnotationCollection.java:296)
which is listed as a bug in gradle version 0.5 but fixed. I tried
replacing
all the jetty jars in gradle with the latest distribution and added all
the
ones that come with that but makes no difference.
Should I reopen this bug?
http://jira.codehaus.org/browse/GRADLE-343
Not necessarily. It might be a different issue. Where and when was the
stack trace reported? Can you post the full stack trace (make sure
you're using an unmodified Gradle distribution)?
--
Adam Murdoch
Gradle Developer
http://www.gradle.org
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email
--
Adam Murdoch
Gradle Developer
http://www.gradle.org
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email