Что ж, я новичок в SBT и Scala и пытаюсь создать простое веб-приложение.сейчас я изо всех сил пытаюсь заставить некоторые простые HTML-файлы отображаться на http://localhost:8080 моя структура папок выглядит следующим образом:
+clever_dropbox_server
|-+project
| |-+boot
| | |-...
| |-+plugins
| | |-build.sbt
| | |-...
| |-+target
| | |-...
|-+src
| |-+main
| | |-+scala
| | |-+webapps
| | | |-+cleverdropbox
| | | | |-+css
| | | | | |-style.css
| | | | |-+images
| | | | | |-...
| | | | |-+js
| | | | | |-...
| | | | |-+WEB-INF
| | | | | |-+classes
| | | | |-index.html
| | | | |-...
| |-+test
| | |-...
|-+target
| |-...
|-build.sbt
хорошо, файл build.sbt в разделе плагинов содержит следующее:
//**********************
//* SBT Eclipse plugin *
//**********************
resolvers += {
val typesafeRepoUrl = new java.net.URL("http://repo.typesafe.com/typesafe/releases")
val pattern = Patterns(false, "[organisation]/[module]/[sbtversion]/[revision]/[type]s/[module](-[classifier])-[revision].[ext]")
Resolver.url("Typesafe Repository", typesafeRepoUrl)(pattern)
}
libraryDependencies <<= (libraryDependencies, sbtVersion) { (deps, version) =>
deps :+ ("com.typesafe.sbteclipse" %% "sbteclipse" % "1.3-RC2" extra("sbtversion" -> version))
}
//******************
//* SBT Web plugin *
//******************
resolvers += "Web plugin repo" at "http://siasia.github.com/maven2"
//Following means libraryDependencies += "com.github.siasia" %% "xsbt-web-plugin" % "0.1.1-<sbt version>""
libraryDependencies <+= sbtVersion(v => "com.github.siasia" %% "xsbt-web-plugin" % ("0.1.1-"+v))
, поэтому у меня будет возможность работать над проектом в eclipse и для поддержки веб-плагинов.
Файл build.sbt в главном каталоге содержит:
name := "clever_dropbox_server"
version := "0.1"
organization := "GilaDana"
scalaVersion := "2.9.0-1"
seq(webSettings: _*)
resolvers += "Java.net Maven2 Repository" at "http://download.java.net/maven/2/"
// Customize any further dependencies as desired
libraryDependencies ++= Seq(
"org.mortbay.jetty" % "jetty" % "6.1.22" % "jetty,test",
"org.eclipse.jetty" % "jetty-server" % "7.4.5.v20110725",// % "compile,jetty",
"org.eclipse.jetty" % "jetty-servlet" % "7.4.5.v20110725",// % "compile,jetty",
"javax.ws.rs" % "jsr311-api" % "1.1.1",
"com.sun.jersey" % "jersey-server" % "1.8",
"com.sun.jersey" % "jersey-core" % "1.8",
"com.sun.jersey" % "jersey-json" % "1.8",
"org.scala-tools.testing" % "specs_2.9.0" % "1.6.8" % "test", // For specs.org tests
"javax.servlet" % "servlet-api" % "2.5" % "provided->default"
)
Мое намерение состоит в том, чтобы иметь один простой сервер Jetty, который будет обслуживать запросы браузера, и еще один встроенный сервер Jetty, который будет обслуживать другой порт для связи clever_dropbox_client.оба должны были иметь дело с одной и той же базой данных и одной и той же папкой с файлами, но кроме этого между ними нет никакой связи.
(несколько слов о проекте: я учусь в BIU,и мы получили этот проект для создания приложения, подобного dropbox, только с несколькими изменениями, такими как сохранение только одной копии из каждого файла на сервере - даже если оно совместно используется двумя разными пользователями под разными именами - для сохранения памяти сервера, илиналичие системы тегов с отношением M: N к файлам в каждой учетной записи и т. д. ...)
проблема в том, что когда я выполняю команду jetty-run из консоли sbt, я получаю 404 наlocalhost: 8080 / cleverdropbox
когда я попытался выяснить, почему, я обнаружил, что sbt не будет копировать файлы HTML / JS / CSS в целевую папку.
Я бы не хотелкопировать файлы вручную, и я не думаю, что я должен (sbt разрешит это делать? или файлы будут удалены при следующей команде перезагрузки / обновления / компиляции?)
, так что я делаю неправильно?