0
我目前正在部署在heroku的Spring Boot應用程序。該應用程序在同一個倉庫(前端和後端)上有兩個主要項目。我設法使用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)
一切都按照該日誌似乎確定,但是當我訪問應用程序它返回一個HTTP 500聲稱有沒有Web進程運行。
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個過程(一個正面和一個用於服務器)。有2個不同的heroku應用程序運行每個dynos。 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相同。
謝謝。你是對的,Web進程就是接收http請求的進程。我有2個不同的應用程序,但有一個包含這兩個應用程序的回購。有可能有2個procfile文件,並指定哪一個適用於每個應用程序? –
您可以創建一個額外的腳本,根據某個env變量運行節點應用程序或彈簧應用程序,例如「APP_TYPE」。在您的Procfile中,只需將此腳本作爲Web進程運行即可。我認爲它應該工作。另一個解決方案是創建簡單的buildpack,在構建期間創建適當的Procfile,但這是更復雜的解決方案。 –