0

次のエラーが表示されます。

... 32 more
Caused by: java.lang.IllegalStateException: Attempting to execute an operation on a closed EntityManagerFactory.

私がやりたいことは、エンティティクラスのユーザーと、ユーザーにアクセスするためのセッション Bean を作成することです..

実行中にエラーが発生します:

User result = null;
String q = "SELECT user FROM " + User.class.getName() + " user WHERE user.username LIKE :username";
Query query = entityManager.createQuery(q).setParameter("username", username);
List<User> users = query.getResultList();
if (users.size() > 0) {
    result = users.get(0);
    System.out.println(result);
}

persistence.xml は次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
  <persistence-unit name="DS3-ejbPU" transaction-type="JTA">
    <jta-data-source>db_ds_hw3</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties/>
  </persistence-unit>
</persistence>

編集1:

注入コード:

 @PersistenceContext(unitName = "DS3-ejbPU")
    private EntityManager em;
4

2 に答える 2

0

バージョン 4.0 で修正された (まだリリースされていない)再デプロイで GlassFish のバグが発生している可能性があります。

当面の間、上記のリンクで説明されているように、回避策はアプリケーションのアンデプロイ - 再デプロイです。


関連

java.lang.IllegalStateException: クローズされた EntityManagerFactory で操作を実行しようとしています

于 2012-11-30T10:59:32.420 に答える
0

私もこのバグに直面しました。ドメインのリロードが役に立ちました。コンソールで次のように入力します。

asadmin restart-domain
于 2013-09-18T22:10:06.640 に答える