2017-03-16 11 views
0

現在、herokuにデプロイされているSpring Bootアプリケーションに取り組んでいます。アプリケーションには、同じリポジトリ(フロントエンドとバックエンド)に2つのメインプロジェクトがあります。私はnode.jsを使ってフロントエンドを走らせることができ、(技術的に)春のブートアプリケーションを稼働させることもできました。Springブートheroku「実行中のWebプロセスがありません」

2017-03-16T08:17:14.834886+00:00 app[api.1]: 2017-03-16 08:17:14.834 INFO 4 --- [main] o.s.web.servlet.DispatcherServlet: FrameworkServlet 'dispatcherServlet': initialization completed in 35 ms 
    2017-03-16T08:17:14.906139+00:00 app[api.1]: 2017-03-16 08:17:14.905 INFO 4 --- [main] com.zilicio.editor.ServerApplication: Started ServerApplication in 14.331 seconds (JVM running for 16.638) 
    2017-03-16T08:17:14.881330+00:00 app[api.1]: 2017-03-16 08:17:14.881 INFO 4 --- [main] .s.b.c.e.j.JettyEmbeddedServletContainer: Jetty started on port(s) 11831 (http/1.1) 

すべてがそのログによると、OKと思われるが、私はアプリケーションにアクセスするときには、何のWebプロセスの実行がないことを主張HTTP 500を返します。

2017-03-16T08:17:29.435087+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/api/projects" (...) 

しかし、私はHerokuのpsの

api.1: up 2017/03/16 03:16:56 -0500 (~ 30m ago) 

に確認したときにこれが私のprocfileです:

web: node Z-Editor/Frontend/server.js 
    api: java -Dserver.port=$PORT $JAVA_OPTS -jar Z-Editor/Server/target/*.jar 

それは2つの工程(フロント用とサーバ用1)を宣言します。ダイノスのそれぞれを動かす2つの異なるヒーローアプリがあります。 node.js dynoは動作していますが、Springブートのものはありません。

これは、レポのフォルダ構造は次のとおりです。

+root 
     - procfile 
     + frontend 
     - package.json 
     - ... 
     + server 
     - src 
     - pom.xml 
     + target 
      - server.jar 
      - ... 
     - package.json 

ホープ誰かが私を助けることができます。

PD:ルートフォルダのpackage.jsonとpom.xmlは、フロントエンドフォルダとサーバーフォルダのpackage.jsonとpom.xmlと同じです。

答えて

1

正確な設定については確信していますが、通常はHTTP要求を受信するプロセスは1つだけです。このプロセスの名前はwebである必要があります。あなたのケースでは、webプロセスがあなたのノードアプリケーションです。 apiプロセスはうまく動作することができますが、決して要求はありません。これらの2つのプロセスを2つの別々のHerokuアプリケーションで分割する必要があります。

+0

ありがとうございます。あなたが正しいです、Webプロセスは、http要求を受け取るものです。私は2つの異なるアプリを持っていますが、両方が含まれているレポが1つあります。 2つのprocfileファイルを持ち、各アプリケーションに適用するファイルを指定することは可能ですか? –

+0

いくつかのenv変数(例えば、APP_TYPE)に応じて、ノードappまたはspringアプリケーションのいずれかを実行する追加のスクリプトを作成することができます。 ProcfileでこのスクリプトをWebプロセスとして実行してください。私はそれがうまくいくと思う。もう一つの解決策は、構築中に適切なProcfileを作成する単純なbuildpackを作成することですが、より複雑な解決策です。 –

関連する問題