#154:飛んで火に入る……

昨日のエラーはHerokuがLombokに対応していないことが原因だったようだ。@Gettet, @setterが生成されてなかったからね。それでエンティティが生成されるようにするためにプラグインを入れようとした訳だがMavenに対応していなかったからビルドツールをGradleに移行。

そのついでにJDKもアップグレードさせようと思ってOpenJDK 15をインストールしてパスを通したり設定を変更したりしたが次はO/RマッパーのHibernateに問題が発生してしまった。公式サイトを見ると5.4(stable版)でバージョンは8か11とのこと(JPAは2.2)。せっかく環境構築したのにやり直し。迷ったが長期サポートがあるAmazon Corretto 11に決めた。

私の頭の中では、これで上手くデプロイできるはずだった。しかし、まだ500エラーが出てくる。おかしいな。本来であれば古いバージョンでも良いのだけど、私は新しいものが好きだから最新バージョンを選択した。これは身から出た錆であり、自分で最後まで処理しなければならない。悩まされるエラーは大抵データベース関連だ。一応エラー文のメモ↓

HTTPステータス 500 – Internal Server Error

タイプ 例外報告

メッセージ [PersistenceUnit: tipswatch] Unable to build Hibernate SessionFactory

説明 サーバーは予期しない条件に遭遇しました。それはリクエストの実行を妨げます。

例外

javax.persistence.PersistenceException: [PersistenceUnit: tipswatch] Unable to build Hibernate SessionFactory
	org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:970)
	org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:895)
	org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:58)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
	utils.DBUtil._getEntityManagerFactory(DBUtil.java:17)
	utils.DBUtil.createEntityManager(DBUtil.java:12)
	filters.IdeasCntFilter.doFilter(IdeasCntFilter.java:30)
根本原因

org.hibernate.MappingException: Could not get constructor for org.hibernate.persister.entity.SingleTableEntityPersister
	org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:123)
	org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:77)
	org.hibernate.metamodel.internal.MetamodelImpl.initialize(MetamodelImpl.java:128)
	org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:300)
	org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:460)
	org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:892)
	org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:58)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
	utils.DBUtil._getEntityManagerFactory(DBUtil.java:17)
	utils.DBUtil.createEntityManager(DBUtil.java:12)
	filters.IdeasCntFilter.doFilter(IdeasCntFilter.java:30)
根本原因

org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]
	org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:91)
	org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:116)
	org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:385)
	org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:519)
	org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:124)
	java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:96)
	org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:77)
	org.hibernate.metamodel.internal.MetamodelImpl.initialize(MetamodelImpl.java:128)
	org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:300)
	org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:460)
	org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:892)
	org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:58)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
	utils.DBUtil._getEntityManagerFactory(DBUtil.java:17)
	utils.DBUtil.createEntityManager(DBUtil.java:12)
	filters.IdeasCntFilter.doFilter(IdeasCntFilter.java:30)
根本原因

java.lang.reflect.InvocationTargetException
	java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:88)
	org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:116)
	org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:385)
	org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:519)
	org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:124)
	java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:96)
	org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:77)
	org.hibernate.metamodel.internal.MetamodelImpl.initialize(MetamodelImpl.java:128)
	org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:300)
	org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:460)
	org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:892)
	org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:58)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
	utils.DBUtil._getEntityManagerFactory(DBUtil.java:17)
	utils.DBUtil.createEntityManager(DBUtil.java:12)
	filters.IdeasCntFilter.doFilter(IdeasCntFilter.java:30)
根本原因

java.lang.NullPointerException
	javassist.util.proxy.SecurityActions.setAccessible(SecurityActions.java:103)
	javassist.util.proxy.DefineClassHelper.toClass3(DefineClassHelper.java:151)
	javassist.util.proxy.DefineClassHelper.toClass2(DefineClassHelper.java:134)
	javassist.util.proxy.DefineClassHelper.toClass(DefineClassHelper.java:95)
	javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:131)
	javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:530)
	javassist.util.proxy.ProxyFactory.createClass2(ProxyFactory.java:515)
	javassist.util.proxy.ProxyFactory.createClass1(ProxyFactory.java:451)
	javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:422)
	org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.postInstantiate(JavassistProxyFactory.java:75)
	org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:162)
	org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:156)
	org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:58)
	java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:88)
	org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:116)
	org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:385)
	org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:519)
	org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:124)
	java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:96)
	org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:77)
	org.hibernate.metamodel.internal.MetamodelImpl.initialize(MetamodelImpl.java:128)
	org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:300)
	org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:460)
	org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:892)
	org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:58)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
	utils.DBUtil._getEntityManagerFactory(DBUtil.java:17)
	utils.DBUtil.createEntityManager(DBUtil.java:12)
	filters.IdeasCntFilter.doFilter(IdeasCntFilter.java:30)
注意 原因のすべてのスタックトレースは、サーバのログに記録されています

Apache Tomcat/9.0.41

ライブラリをインストールした後↓

HTTPステータス 500 – Internal Server Error

タイプ 例外報告

メッセージ Unable to locate persistence units

説明 サーバーは予期しない条件に遭遇しました。それはリクエストの実行を妨げます。

例外

javax.persistence.PersistenceException: Unable to locate persistence units
	org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:95)
	org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:71)
	org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:52)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
	utils.DBUtil._getEntityManagerFactory(DBUtil.java:17)
	utils.DBUtil.createEntityManager(DBUtil.java:12)
	filters.IdeasCntFilter.doFilter(IdeasCntFilter.java:30)
根本原因

javax.persistence.PersistenceException: Unrecognized persistence.xml version [2.2]
	org.hibernate.jpa.boot.internal.PersistenceXmlParser.validate(PersistenceXmlParser.java:491)
	org.hibernate.jpa.boot.internal.PersistenceXmlParser.loadUrl(PersistenceXmlParser.java:445)
	org.hibernate.jpa.boot.internal.PersistenceXmlParser.parsePersistenceXml(PersistenceXmlParser.java:247)
	org.hibernate.jpa.boot.internal.PersistenceXmlParser.parsePersistenceXml(PersistenceXmlParser.java:240)
	org.hibernate.jpa.boot.internal.PersistenceXmlParser.doResolve(PersistenceXmlParser.java:234)
	org.hibernate.jpa.boot.internal.PersistenceXmlParser.locatePersistenceUnits(PersistenceXmlParser.java:71)
	org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:91)
	org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:71)
	org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:52)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
	utils.DBUtil._getEntityManagerFactory(DBUtil.java:17)
	utils.DBUtil.createEntityManager(DBUtil.java:12)
	filters.IdeasCntFilter.doFilter(IdeasCntFilter.java:30)
注意 原因のすべてのスタックトレースは、サーバのログに記録されています

Apache Tomcat/9.0.41

persistence.xml version [2.2]がおかしいっぽいな。

To comment

@Contents
閉じる