SBT: библиотекаDependencies отсутствует в пути к классу пристани - PullRequest
1 голос
/ 27 августа 2011

Я настроил проект webapp с sbt 0.10.1.Одна из библиотечных зависимостей - Джерси.Мой файл build.sbt выглядит следующим образом:

seq(webSettings :_*)
scalaVersion := "2.8.1"
libraryDependencies ++= Seq(
"javax.ws.rs" % "jsr311-api" % "1.1" % "provided, jetty",
"com.sun.jersey" % "jersey-server" % "1.9" % "provided, jetty" from "http://download.java.net/maven/2/",
"org.eclipse.jetty" % "jetty-webapp" % "7.3.0.v20110203" % "jetty",
"ch.qos.logback" % "logback-classic" % "0.9.26",
"org.eclipse.jetty" % "jetty-servlet" % "7.3.0.v20110203"
)

В консоли sbt я запускаю перезагрузку, обновление, компиляцию, prepare-webapp, jetty-run - в таком порядке.Кажется, все в порядке, кроме пристани.Там я получаю ClassNotFoundException

java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer

Это потому, что библиотека Джерси не копируется в target / webapp / WEB-INF / lib / во время запуска.Так что я думаю, что в моей настройке build.sbt должен быть какой-то недостаток.

У кого-нибудь есть идеи, что здесь может быть не так?Michael

Ответы [ 2 ]

1 голос
/ 28 августа 2011

Оказалось, что с файлом build.sbt было несколько проблем. Я изменил файл следующим образом, чтобы он работал:

libraryDependencies ++= Seq(
"javax.ws.rs" % "jsr311-api" % "1.1" % "provided, jetty",
"com.sun.jersey" % "jersey-server" % "1.8" from "http://download.java.net/maven/2/com/sun/jersey/jersey-server/1.8/jersey-server-1.8.jar",
"com.sun.jersey" % "jersey-core" % "1.8" from "http://download.java.net/maven/2/com/sun/jersey/jersey-core/1.8/jersey-core-1.8.jar",
"org.eclipse.jetty" % "jetty-webapp" % "7.3.0.v20110203" % "jetty",
"ch.qos.logback" % "logback-classic" % "0.9.26",
"org.eclipse.jetty" % "jetty-servlet" % "7.3.0.v20110203",
"asm" % "asm" % "3.1"

)

Одна важная вещь, на которую следует обратить внимание, это то, что мне пришлось убрать часть «предоставленный причал» из зависимостей джерси. В противном случае они не будут скопированы в target / webapp / WEB-INF / lib во время выполнения «prepare webapp».

1 голос
/ 28 августа 2011

У вас есть зависимость от джерси,

"com.sun.jersey" % "jersey-server" % "1.9" % "provided, jetty" 
  from "http://download.java.net/maven/2/"

, но когда вы проверяете каталог по указанному вами пути,

http://download.java.net/maven/2/com/sun/jersey/jersey-server/

вы обнаружите, что тамэто не папка 1.9, а 1.9-SNAPSHOT.Я не пробовал, но, вероятно, это должно помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...