JBoss が環境変数値を Bean に注入するのに問題があります。これが私のBeanクラスです:
パッケージ com.topcoder.test; import java.util.ArrayList; java.util.List をインポートします。 import javax.annotation.Resource; javax.ejb.EJBContext をインポートします。 javax.ejb.Remote をインポートします。 javax.ejb.SessionContext をインポートします。 import javax.ejb.Stateless; import javax.ejb.TransactionManagement; import javax.ejb.TransactionManagementType; javax.naming.Context をインポートします。 import javax.naming.InitialContext; import javax.naming.NamingException; import javax.persistence.EntityManager; javax.persistence.PersistenceContext をインポートします。 import javax.persistence.PersistenceContextType; org.jboss.annotation.ejb.RemoteBinding をインポートします。 com.topcoder.test.Test をインポートします。 public @Stateless(name = "TestBean") クラス TestBean はテストを実装します { @Resource(name="managerFile") プライベート文字列 managerFile; public String getManagerFile() { managerFile を返します。 } public String testMethod() { String ret = "testMethod() の managerFile の値は " + getManagerFile(); retを返します。 } @PersistenceContext(ユニット名 = "persistenceUnit"、タイプ = PersistenceContextType.TRANSACTION) プライベート EntityManager マネージャー。 @PersistenceContext(ユニット名 = "persistenceUnit"、タイプ = PersistenceContextType.TRANSACTION) public void setEntityManager(EntityManager マネージャー) { this.manager = マネージャー; } public EntityManager getEntityManager() { if (マネージャー == null) { throw new IllegalStateException("EntityManager は使用前に DAO に設定されていません"); } リターンマネージャー; } @SuppressWarnings("未チェック") public List retrieveAll() は例外をスローします { EntityManager em = getEntityManager(); リスト結果 = em.createQuery("FROM TestEntity").getResultList(); if (結果 == null) { 結果 = 新しい ArrayList(); } 結果を返します。 } }
managerFile の値が JBoss によって注入されるようにします。ここに私のejb-jar.xmlがあります:
<enterprise-beans>
<session>
<ejb-name>Test</ejb-name>
<ejb-class>com.topcoder.test.TestBean</ejb-class>
<env-entry>
<env-entry-name>managerFile</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>com/topcoder/test/TestBean.properties</env-entry-value>
</env-entry>
</session>
</enterprise-beans>
しかし、JBoss に ear をデプロイすると、次のエラー メッセージが表示されます。
09:07:40,495 WARN [ResourceHandler] managerFile を注入していません。一致する enc インジェクター env/managerFile が見つかりません
JBoss 4.2 を実行しています。私は何を間違っていますか?