2016-07-27 70 views
0

我在使用「git push master heroku」進行應用程序部署時出現錯誤,而本地工作正常。 我想使用我的persistence.xml訪問我的H2數據庫(我將使用可能PostgreSQL)全部與我的數據源在WildFly 10上。使用我的persistence.xml(JPA)部署到Heroku而不使用Spring

我發現除Spring以外沒有其他參考。 (我不能使用它)

謝謝!

+0

dup https://stackoverflow.com/questions/38603284/heroku-deploy-with-java-jpa-not-use-spring –

+0

大家好,請我想找到錯誤。 –

回答

1

我已經在Heroku上部署了JavaEE Web應用程序(包括jsf,javabean,ejb,di等)。 Heroku將允許你運行shell腳本來啓動你的應用程序,就像使用main方法或者可執行文件.jar文件的類一樣。不在預安裝的fullstack應用程序服務器上。另外,如果你要在Heroku上運行Java應用程序,你的項目應該是maven

讓它從命令行你可以使用雲準備隨處運行的小服務器,例如payara-microwildfly-swarmspring-boot工作。它將您的應用程序和服務器變成單個可執行的jar(Uber JAR)。 tomcat和jetty也有構建uberJar的包裝器。

我使用payara-micro,能夠運行很少的jar很好用幾乎所有的JavaEE功能都有會話複製。請按照此鏈接獲取說明payara-micro how to(也請閱讀maven部分)。

當你將git推到Heroku(使用heroku cli工具)時,它會自動建立你的項目,並從項目根目錄下的文件Procfile運行腳本。樣品procfile:

web: java -jar target/myapp.jar --port $PORT

考慮$PORT部分從上面的代碼片段。當Heroku運行時(dyno)啓動時,它會打開隨機端口(我認爲是),並綁定到$PORT環境變量。所以我在這裏通過那accessibe端口payara微服務器來聽。其他提到的服務器應該使用類似的程序。您可以在heroku devcenterr

發現單證對於JPA和數據庫連接的Heroku提供JDBC_DATABASE_URLDATABASE_URL具有連接信息(URL等),爲您connect database環境變量。我沒有找到將這些變量連接到persistence.xml的方法。但是您可以通過編程創建並配置EntityManagerFactoryEntityManager

希望它有幫助。