У меня проблемы с получением JBoss для ввода значения переменной среды в bean-компонент. Вот мой класс бобов:
package com.topcoder.test;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import javax.ejb.EJBContext;
import javax.ejb.Remote;
import javax.ejb.SessionContext;
import javax.ejb.Stateless;
import javax.ejb.TransactionManagement;
import javax.ejb.TransactionManagementType;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.PersistenceContextType;
import org.jboss.annotation.ejb.RemoteBinding;
import com.topcoder.test.Test;
public @Stateless(name = "TestBean")
class TestBean implements Test {
@Resource(name="managerFile")
private String managerFile;
public String getManagerFile() {
return managerFile;
}
public String testMethod() {
String ret = "the value of managerFile in testMethod() is " + getManagerFile();
return ret;
}
@PersistenceContext(unitName = "persistenceUnit", type = PersistenceContextType.TRANSACTION)
private EntityManager manager;
@PersistenceContext(unitName = "persistenceUnit", type = PersistenceContextType.TRANSACTION)
public void setEntityManager(EntityManager manager) {
this.manager = manager;
}
public EntityManager getEntityManager() {
if (manager == null) {
throw new IllegalStateException("EntityManager has not been set on DAO before usage");
}
return manager;
}
@SuppressWarnings("unchecked")
public List retrieveAll() throws Exception {
EntityManager em = getEntityManager();
List result = em.createQuery("FROM TestEntity").getResultList();
if (result == null) {
result = new ArrayList();
}
return result;
}
}
Я хочу, чтобы значение 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:
09: 07: 40,495 ПРЕДУПРЕЖДЕНИЕ [ResourceHandler] Не вставляет файл managerFile, не найден соответствующий enc / manager инжектора encile. Файл найден
Я использую JBoss 4.2. Что я делаю не так?