【问题标题】:How to Deploy WebApplication Using JavaSpark in Heroku Which Has StaticFilesFolder for WebComponents如何在 Heroku 中使用 Java Spark 部署 Web 应用程序,其中包含 WebComponents 的 StaticFiles 文件夹
【发布时间】:2018-10-23 03:50:29
【问题描述】:

我想在 Heroku 上部署一个 Web 应用程序,必须使用 WebSocketServer.ja 中的 staticfilesfolder 提供服务

    port(getHerokuAssignedPort());
    webSocketIdleTimeoutMillis(1000000000);
    staticFileLocation("/public");
    webSocket("/em/", WebSocketHandler.class);
    init();

和 websocketClient.js

var webSocket = new WebSocket("ws://" + location.hostname + ":" + location.port + "/em/");

但我无法从 /public 文件夹中提供 *.html、*.css、*.js 文件。它在我的本地系统无法在 heroku 站点上运行的情况下正常工作。它显示应用程序错误。

【问题讨论】:

  • 这真的取决于你的WAR文件结构。但我只是对非本地部署进行了一些实验,然后在我的初始化代码中添加if (local) {...} else {...},并为每个部署提供正确的路径。
  • 是的,我用“/public”更新了staticFileLocation,相对于它的目标,它仍然无法工作....
  • 不相关:查看stackoverflow.com/questions/10699492/bi-directional-map-in-java ... 了解 Bi 地图问题。您删除问题的速度太快了。此外,答案是。对于java中的bi map,你需要两个map。
  • 我已经检查过了,这就是我问这个问题的原因,很抱歉删除,因为它会将声誉降低到负水平
  • @SHG如何获取Heroku中/public文件夹的位置,由github账号链接

标签: heroku spark-java


【解决方案1】:
public class Bootstrap {

private static final int DEFAULT_PORT = 4567;

public static void main(String[] args) throws URISyntaxException {
     port(getHerokuAssignedPort());
     externalStaticFileLocation(getPublicFolderPath());
}

private static int getHerokuAssignedPort() {
    ProcessBuilder processBuilder = new ProcessBuilder();
    if (processBuilder.environment().get("PORT") != null) {
        return Integer.parseInt(processBuilder.environment().get("PORT"));
    }
    return DEFAULT_PORT;
}

private static String getPublicFolderPath() throws URISyntaxException{
    CodeSource codeSource = Bootstrap.class.getProtectionDomain().getCodeSource();
    File jarFile = new File(codeSource.getLocation().toURI().getPath());
    String jarDir = jarFile.getParentFile().getPath();
    return jarDir + File.separator + "public";
}}

/public 目录应与构建 jar 文件位于同一文件夹中。

【讨论】:

  • 在使用 heroku 时是否可以从另一台服务器访问数据库(意味着不使用 Herokudb)
猜你喜欢
  • 2013-11-16
  • 2023-03-27
  • 1970-01-01
  • 2019-07-24
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 2018-01-19
相关资源
最近更新 更多