Здравствуйте, мне нужно получить некоторую информацию о работающем домене в glassfish 3 от ejb без состояния, развернутого на нем.После некоторых исследований я обнаружил, что мне нужно получить экземпляр интерфейса com.sun.enterprise.config.serverbeans.Config.Я пытался внедрить его с помощью механизма CDI без успеха.Я также пытался внедрить класс org.glassfish.internal.api.Target (внутри которого есть свойство Inject) и даже пользовательский класс, который расширяет Target .. но внедренные переменные всегда имеют значение null
это мой код
META-INF / beans.xml (я читал, что Glassfish 3 использует CDI 1.0)
<?xml version="1.0" encoding="UTF-8"?>
< beans xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/beans_1_0.xsd" >
</ beans >
import com.sun.enterprise.config.serverbeans.Config;
import com.sun.enterprise.config.serverbeans.Domain;
import org.glassfish.internal.api.Target;
import javax.ejb.Stateless;
import javax.ejb.LocalBean;
@Stateless
@LocalBean
public class InfoBean {
@Inject(name = ServerEnvironment.DEFAULT_INSTANCE_NAME) //default-instance-name
private Config config;
@Inject
Target targetUtil;
@Inject
private DomainInspector inspector;
...
}
import org.glassfish.internal.api.Target;
import com.sun.enterprise.config.serverbeans.Config;
import javax.enterprise.inject.Default;
@Default
public class DomainInspector extends Target {
private Config config;
public DomainInspector() {
super();
config = getConfig("server");
}
public Config getConfig() {
return config;
}
}
Какмогу ли я это сделать?что мне не хватает?как я могу получить экземпляр Config в ejb без состояния?Я хотел бы избегать использования JMX, потому что EJB должен иметь возможность доступа к нему, если он развернут внутри контейнера ... и также не хочет устанавливать соединение, параметры которого могут измениться позже