2016-07-27 2 views
0

"git push master heroku"로 응용 프로그램을 배포 할 때 오류가 발생하지만 로컬에서는 제대로 작동합니다. 내 데이터 소스 인 WildFly 10에 내 데이터베이스 H2에 액세스하기 위해 내 persistence.xml을 사용하고 싶습니다.스프링을 사용하지 않고 persistence.xml (JPA)을 사용하여 Heroku에 배치

Spring 이외의 다른 참조 정보가 없습니다. (사용할 수 없습니다)

고마워요!

+0

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

+0

안녕하십니까, 오류를 찾으십시오. –

답변

1

저는 Heroku에서 JavaEE 웹 앱 (jsf, javabean, ejb, di 등)을 배포했습니다. Heroku는 을 사용하여 응용 프로그램을 시작하기위한 쉘 스크립트를 주 메소드 또는 실행 가능 .jar 파일과 함께 클래스과 같이 실행할 수 있습니다. 사전 설치된 전체 스택 응용 프로그램 서버에는 없습니다. 또한 Heroku에서 java 앱을 실행하려면 maven이어야합니다. 으로

은 당신이 payara-micro, wildfly-swarm, spring-boot처럼 어디서든 작은 서버를 클라우드 준비 실행을 사용할 수 있습니다 명령 줄에서 작동합니다. 그것은 귀하의 애플 리케이션과 서버를 하나의 실행 가능한 jar (Uber JAR)로 바꾸어줍니다. 또한 바람둥이와 부두에는 uberJar 빌드 용 래퍼가 있습니다.

저는 payara-micro를 사용합니다. 아주 작은 병은 실행할 수 있습니다. 거의 모든 JavaEE 기능과 세션 복제가 있습니다. 지침 payara-micro how to (이 부분도 읽으십시오)에 대해서는이 링크를 클릭하십시오.

heoku를 (heroku cli 도구로) 밀어 넣으면 자동으로 프로젝트가 빌드되고 프로젝트 루트 디렉토리에서 Procfile이라는 파일에서 스크립트를 실행합니다. 샘플 procfile는 :

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

조각 위에서 $PORT 부분을 고려하십시오. Heroku 런타임 (dyno)이 시작될 때 임의의 포트가 열리 며 (나는 그렇게 생각합니다) $PORT 환경 변수에 바인드합니다. 그래서 나는 여기 을 accessibe 포트를 payara-micro 서버에 전달하여 듣는다. 다른 언급 된 서버는 유사한 절차로 작동해야합니다. JPA 및 데이터베이스 연결 Heroku가 연결 정보 (URL 등) 당신을 위해 connect database에이 JDBC_DATABASE_URLDATABASE_URL 환경 변수를 제공을 위해 당신은 heroku devcenterr

에서 문서화를 찾을 수 있습니다. 나는 그 변수들을 persistence.xml에 연결하는 방법을 찾지 못한다. 그러나 프로그래밍 방식으로 EntityManagerFactoryEntityManager을 만들고 구성 할 수 있습니다.

희망이 있습니다.