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 を実行しています。私は何を間違っていますか?