您好,我必须从部署在其上的无状态ejb获取有关glassfish 3中运行域的一些信息。经过研究,我发现需要获取接口com.sun.enterprise.config.serverbeans.Config的实例。我试图使用CDI机制注入它,但没有成功。我还尝试注入org.glassfish.internal.api.Target类(内部具有注入的Config属性),甚至注入了扩展Target ..的自定义类。但是注入的变量始终为空
这是我的代码
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;
}
}
我该怎么办?我想念什么?如何在无状态ejb中获取Config实例?我想避免使用JMX,因为如果EJB部署在容器中,EJB应该能够访问它。而且也不想建立一个其参数稍后可以更改的连接