не может ввести внутренний Glassfish 3 в EJB - PullRequest
0 голосов
/ 01 декабря 2018

Здравствуйте, мне нужно получить некоторую информацию о работающем домене в 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 должен иметь возможность доступа к нему, если он развернут внутри контейнера ... и также не хочет устанавливать соединение, параметры которого могут измениться позже

...