when I do an 'update' it doesn't get downloaded like other
dependencies, and
and when I do 'jetty-run', I get a java.lang.NoClassDefFoundError: org/
eclipse/jetty/server/Connector.
I have tried clean-lib, clean-cache and many things without success.
Here's my build definition :
sbt.version=0.7.2
project.version=0.0.1
def.scala.version=2.7.7
build.scala.versions=2.8.0.Beta1-RC8
project.initialize=false
Thanks !
class GwtBuild(info: ProjectInfo) extends DefaultWebProject(info) {
val h2 = "com.h2database" % "h2" % "1.2.127"
val jetty7 = "org.eclipse.jetty" % "jetty-project" % "7.0.2.RC0" %
"test" // jetty is only need for testing
// val jetty7 = "org.eclipse.jetty" % "jetty-project" % "7.0.2.RC0"
// val jetty6 = "org.mortbay.jetty" % "jetty" % "6.1.14" % "test" //
jetty is only need for testing
// val jetty = "org.mortbay.jetty" % "jetty" % "6.1.18" % "test-
>default"
}
-Mark
val jetty7 = "org.eclipse.jetty" % "jetty-webapp" % "7.0.2.RC0"
caused the proper jars to get downloaded into :
lib_managed\scala_2.8.0.Beta1-RC8\compile
but, when I call jetty-run, I see that all the jetty jars get copied
to :
target\scala_2.8.0.Beta1-RC8\webapp\WEB-INF\lib
but I get a ClassNotFoundException, even though I see the class in
jetty-server-7.0.2.RC0.jar
the stack trace is :
Caused by: java.lang.ClassNotFoundException:
org.eclipse.jetty.server.Connector
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:303)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at xsbt.DualLoader.loadClass(DualLoader.scala:28)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at
sbt.LazyFrameworkLoader.doLoadClass(ClasspathUtilities.scala:204)
at sbt.LoaderBase.loadClass(ClasspathUtilities.scala:118)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:
316)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at sbt.ModuleUtilities$.getObject(ModuleUtilities.scala:10)
at sbt.JettyRunner.createRunner$1(WebApp.scala:47)
at sbt.JettyRunner.runJetty$1(WebApp.scala:49)
at sbt.JettyRunner.apply(WebApp.scala:59)
at sbt.WebScalaProject$$anonfun$jettyRunTask
$1.apply(ScalaProject.scala:370)
at sbt.WebScalaProject$$anonfun$jettyRunTask
$1.apply(ScalaProject.scala:370)
at sbt.TaskManager$Task.invoke(TaskManager.scala:62)
at sbt.impl.RunTask.doRun$1(RunTask.scala:77)
at sbt.impl.RunTask.runTask(RunTask.scala:85)
at sbt.impl.RunTask.run(RunTask.scala:32)
at sbt.impl.RunTask$.apply(RunTask.scala:17)
at sbt.impl.RunTask$.apply(RunTask.scala:16)
at sbt.Project$class.run(Project.scala:98)
at sbt.Project$class.act(Project.scala:129)
at sbt.BasicScalaProject.act(DefaultProject.scala:20)
at sbt.xMain$$anonfun$8.apply(Main.scala:486)
at sbt.xMain$$anonfun$8.apply(Main.scala:486)
at sbt.xMain.withAction(Main.scala:519)
at sbt.xMain.sbt$xMain$$handleAction(Main.scala:486)
at sbt.xMain.handleCommand(Main.scala:476)
at sbt.xMain.processAction(Main.scala:417)
at sbt.xMain.process$1(Main.scala:237)
at sbt.xMain$Continue$1.apply(Main.scala:130)
at sbt.xMain.run$1(Main.scala:134)
at sbt.xMain.processArguments(Main.scala:246)
at sbt.xMain.startProject(Main.scala:105)
at sbt.xMain.run(Main.scala:82)
at sbt.xMain.run0$1(Main.scala:33)
at sbt.xMain.run(Main.scala:40)
at xsbt.boot.Launch$.run(Launch.scala:57)
at xsbt.boot.Launch$$anonfun$explicit$1.apply(Launch.scala:44)
at xsbt.boot.Launch$$anonfun$explicit$1.apply(Launch.scala:44)
at xsbt.boot.Launch$.launch(Launch.scala:63)
at xsbt.boot.Launch$.explicit(Launch.scala:44)
at xsbt.boot.Launch$.initialized(Launch.scala:40)
at xsbt.boot.Launch$.parsed(Launch.scala:34)
at xsbt.boot.Launch$.configured(Launch.scala:22)
at xsbt.boot.Launch$.apply(Launch.scala:15)
at xsbt.boot.Launch$.apply(Launch.scala:12)
at xsbt.boot.Boot$.run(Boot.scala:20)
at xsbt.boot.Boot$.main(Boot.scala:15)
at xsbt.boot.Boot.main(Boot.scala)
Max
-Mark
I'm not familliar with SBT+webapp but jetty'jars should not be part of
the webapp (dir and .war).
Jetty is provided as a servlet container where webapp are running.
So I don't think jetty jars should be copied to
target\scala_2.8.0.Beta1-RC8\webapp\WEB-INF\lib
/davidB
Good point. In this instance, Jetty was declared as a compile time dependency, though, which is why it got copied there.
-Mark
The doc :
http://code.google.com/p/simple-build-tool/wiki/WebApplications
Says : if you add Jetty as a dependency (manually or automatically),
you can use jetty-run.
How do I add Jetty as a dependency ?
I thought that this line would be declaring the dependence
'manually' :
val jetty7 = "org.eclipse.jetty" % "jetty-webapp" % "7.0.2.RC0"
I guess not...
my only requirement is that I can call jetty-run.
Cheers !
That is actually considered the automatic way. Manually would be downloading
Jetty and its dependencies, putting them in a directory, and adding them. I
have updated the WebApplications page with Jetty 7 and manual examples.
In your case, you need to put jetty in the 'test' configuration.
-Mark