2016-07-27 69 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

希望它有帮助。