【问题标题】:Exception when setting static location in a jar在 jar 中设置静态位置时出现异常
【发布时间】:2016-09-21 19:51:20
【问题描述】:

我有一个基本的 spark-java 应用程序,我将静态资源的位置设置为:

Spark.staticFiles.location("/static");

当我在 IDE 中运行它时效果很好,当我尝试从 jar 中运行它时,我得到了

spark.staticfiles.StaticFilesConfiguration - Error when creating StaticResourceHandler
java.io.FileNotFoundException: class path resource [static] cannot be resolved to URL because it does not exist
at spark.resource.ClassPathResource.getURL(ClassPathResource.java:166)

我发现this thread 讨论了一个类似的问题。它声称已在 2.5 中修复,但我正在运行 2.5 并且仍然遇到此问题。

除了不使用 spark 静态数据并从 CDN 外部提供它们之外,任何人都找到了解决此问题的方法?

【问题讨论】:

    标签: spark-java


    【解决方案1】:

    您的/static 目录必须位于类路径的根目录,这取决于您的项目结构。如果你使用maven结构,你可以在/resources目录下创建你的静态目录。其他方法是将您的 /static 目录创建为 java 包,这将保证它在您的类路径中。

    【讨论】:

    • 我的静态文件夹在正确的位置,但仍然无法正常工作。我最终爆炸了所有东西并部署了它而不是 jar,这似乎可行。
    【解决方案2】:

    我有同样的问题。当尝试从 jar 运行时。在 jar 中构建时必须使用外部位置。

    staticFiles.externalLocation(System.getProperty("app.dir")+"\public");

    例如您的应用程序目录是 C:\server。 应用程序构建在 C:\server\app.jar 和您的 html,js 文件位于 C:\server\public

    您必须从 cmd 运行应用程序:java -Dapp.dir="C:\server" -jar app.jar

    【讨论】:

      猜你喜欢
      • 2021-05-14
      • 1970-01-01
      • 1970-01-01
      • 2018-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多