質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Hibernate

HibernateとはJava言語のobject-relational mapping (ORM)ライブラリであり、Object/Relational Mappingよりはるか多くの方法でアプリケーションをPOJOで機能付けることができます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

0回答

767閲覧

herokuにデプロイしたWebページの一部でエラーが起きる。(No Persistence provider for EntityManager named ・・・)

doroxu111

総合スコア8

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Hibernate

HibernateとはJava言語のobject-relational mapping (ORM)ライブラリであり、Object/Relational Mappingよりはるか多くの方法でアプリケーションをPOJOで機能付けることができます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

1クリップ

投稿2020/09/16 14:50

編集2020/09/17 14:59

前提・実現したいこと

javaでDB(postgreSQL)連携のあるホームページを作っています。
Tomcatを使いローカル環境の動作ではしっかり動くのですが、herokuにデプロイをしたあとでwebを経由見ようととするとエラーが出ます。

このエラーを解決するためにはどうすればよいのでしょうか?

発生している問題・エラーメッセージ

HTTP Status 500 - No Persistence provider for EntityManager named #######(運用時には名前が入っています。)

エラーメッセージ type Exception report message No Persistence provider for EntityManager named #######(運用時には名前が入っています。) description The server encountered an internal error that prevented it from fulfilling this request. exception javax.persistence.PersistenceException: No Persistence provider for EntityManager named #######(運用時には名前が入っています。) javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:85) javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) utils.DBUtil._getEntityManagerFactory(DBUtil.java:17) utils.DBUtil.createEntityManager(DBUtil.java:12) frontsideServlet.ToppageServlet.doGet(ToppageServlet.java:36) javax.servlet.http.HttpServlet.service(HttpServlet.java:622) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) filters.EncodingFilter.doFilter(EncodingFilter.java:40) note The full stack trace of the root cause is available in the Apache Tomcat/8.0.44 logs. Apache Tomcat/8.0.44

該当のソースコード

java

1package utils; 2 3import javax.persistence.EntityManager; 4import javax.persistence.EntityManagerFactory; 5import javax.persistence.Persistence; 6 7public class DBUtil { 8 private static final String PERSISTENCE_UNIT_NAME = "#######(運用時には名前が入っています。)"; 9 private static EntityManagerFactory emf; 10 11 public static EntityManager createEntityManager() { 12 return _getEntityManagerFactory().createEntityManager(); 13 } 14 15 private static EntityManagerFactory _getEntityManagerFactory() { 16 if(emf == null) { 17 emf = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME); 18 } 19 20 return emf; 21 } 22}

試したこと


・Persistens.xmlに下記を追加

<property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/> <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://#######(運用時にはURLが入っています。)"/> <property name="javax.persistence.jdbc.user" value="#######(運用時にはユーザーネームが入っています。)"/> <property name="javax.persistence.jdbc.password" value="#######(運用時にはパスワードが入っています。)"/>

・pom.xmlの編集(下記 pom.xmlのソースコード)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>jp.example</groupId> <artifactId>#######(運用時には名前が入っています。)</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <build> <sourceDirectory>src</sourceDirectory> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>copy</goal> </goals> <configuration> <artifactItems> <artifactItem> <groupId>com.github.jsimone</groupId> <artifactId>webapp-runner</artifactId> <version>8.0.44.0</version> <destFileName>webapp-runner.jar</destFileName> </artifactItem> </artifactItems> </configuration> </execution> </executions> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>3.0.0</version> <configuration> <warSourceDirectory>WebContent</warSourceDirectory> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.2.13.Final</version> </dependency> <dependency> <groupId>org.apache.taglibs</groupId> <artifactId>taglibs-standard-impl</artifactId> <version>1.2.5</version> </dependency> <dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>javax.servlet.jsp.jstl-api</artifactId> <version>1.2.1</version> </dependency> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.2.5</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>org.hibernate.javax.persistence</groupId> <artifactId>hibernate-jpa-2.1-api</artifactId> <version>1.0.2.Final</version> </dependency> <dependency> <groupId>org.eclipse.persistence</groupId> <artifactId>eclipselink</artifactId> <version>2.5.0</version> </dependency> </dependencies> </project>

補足情報(FW/ツールのバージョンなど)

開発環境にはeclipseを使っています。
ローカルではtomcat-8.0.43を使用しています。
ローカル環境では問題なく動くのですが、herokuにデプロイするとToppageのみ上記のエラーメッセージが表示されてしまいます。

どなたかご回答よろしくおねがいいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問