gpt4 book ai didi

java - Scalatra 独立部署时找不到 View

转载 作者:行者123 更新时间:2023-12-02 06:47:23 30 4
gpt4 key购买 nike

我正在使用 scalatra 文档和 sbt-assemble 插件来创建一个独立的 jar。它在我的本地计算机(带有 OpenJdk 1.7.0 的 Debian Wheezy)上运行,但在运行相同 Jdk 的远程 EC2 计算机(Ubuntu 12.04.2 LTS)上失败。

异常消息是:

org.fusesource.scalate.util.ResourceNotFoundException: Could not load resource: [index.ssp]; are you sure it's within [/home/abc/src/main/webapp]?
at org.fusesource.scalate.servlet.ServletResourceLoader.createNotFoundException(ServletResourceLoader.scala:79)
at org.fusesource.scalate.util.ResourceLoader$class.resourceOrFail(ResourceLoader.scala:55)
at org.fusesource.scalate.servlet.ServletResourceLoader.resourceOrFail(ServletResourceLoader.scala:37)
at org.fusesource.scalate.util.UriResource.delegate(Resource.scala:91)
at org.fusesource.scalate.util.DelegateResource.text(Resource.scala:216)
at org.fusesource.scalate.ssp.SspCodeGenerator.generate(SspCodeGenerator.scala:152)
at org.fusesource.scalate.TemplateEngine.compileAndLoad(TemplateEngine.scala:750)
at org.fusesource.scalate.TemplateEngine.compileAndLoadEntry(TemplateEngine.scala:699)
at org.fusesource.scalate.TemplateEngine.liftedTree1$1(TemplateEngine.scala:419)

它说找不到 View ,但完全相同的 jar 文件在我的本地计算机上运行。

最佳答案

您需要在嵌入式 Jetty 上设置正确的资源库。这里有三个选项:

  1. 按照 https://stackoverflow.com/a/17913254/1590415 中的说明将资源附加到 .jar 文件

    val rb = getClass.getClassLoader.getResource("webapp").toExternalForm
    context.setResourceBase(rb)
  2. 将资源放入文件系统上的文件夹中

    val rb = "webapp"
    context.setResourceBase(rb)
  3. 使用scalatra-sbt插件,它有一个dist任务来创建.zip发行版。对于工作项目,请参阅 here 。您可以通过在 SBT 提示符下键入 dist 来调用该任务。

    val myDistSettings = DistPlugin.distSettings ++ Seq(
    mainClass in Dist := Some("ScalatraLauncher"),
    memSetting in Dist := "2g",
    permGenSetting in Dist := "256m",
    envExports in Dist := Seq("LC_CTYPE=en_US.UTF-8", "LC_ALL=en_US.utf-8"),
    javaOptions in Dist ++= Seq("-Xss4m", "-Dfile.encoding=UTF-8")
    )

根据我的经验,Jetty 从 .jar 加载 Web 资源非常慢,因此您最好将它们放在文件系统上的文件夹中。选项 2 和 3 都从文件系统加载资源。

关于java - Scalatra 独立部署时找不到 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18470661/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com