jndi InitialContext всегда возвращает один и тот же контекст

#jboss #jndi

Вопрос:

Доброе утро. Мне нужно глубокое объяснение. У меня есть много экземпляров eap jboss, в которых я развернул одно и то же приложение ear, каждый экземпляр считывает данные из своего собственного источника данных. Из одного экземпляра мне нужно подключиться к другим экземплярам jboss для чтения данных из их отдельной базы данных. Я использую jndi для поиска необходимого ejb следующим образом:

 public static Context initInterface(String adresse, String port)
        throws NamingException, Exception {
    String file = System.getProperty("jboss.server.data.dir")   File.separator   "configuration"   File.separator
              "config.properties";
    System.out.println(file);
    Properties config = new Properties();
    try {
        config.load(new FileInputStream(file));
    } catch (Exception e) {
        e.printStackTrace();
    }
    JMSProps props = new JMSProps();
    props.setHost(adresse);
    props.setPort(Integer.parseInt(port));

    System.out.println(config.get("local.username"));
    props.setUsername((String) config.get("local.username"));
    System.out.println(config.get("local.password"));
    props.setPassword((String) config.get("local.password"));
    return getContext(props);
    //return (T) context.lookup(jndiName);
}

public static Context getContext(JMSProps jmsProps) throws NamingException {
    Properties props = new Properties();
    props.put(Context.INITIAL_CONTEXT_FACTORY, "org.wildfly.naming.client.WildFlyInitialContextFactory");
    props.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
    props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
    props.put(Context.PROVIDER_URL,
            String.format("%s://%s:%d", "remote http", jmsProps.getHost(), jmsProps.getPort()));
    props.put(Context.SECURITY_PRINCIPAL, jmsProps.getUsername());
    props.put(Context.SECURITY_CREDENTIALS, jmsProps.getPassword()); 
    props.put("org.jboss.ejb.client.scoped.context", "true");

    return new InitialContext(props);
}
 

Когда я пытаюсь подключиться к двум разным контекстам, я замечаю, что первый открытый контекст всегда возвращается.

 Context context;
    context = MonetiqueUtil.initInterface("192.168.1.2",
            "8087");
    coreBean = (ICoreBean) context.lookup(TraitementBeanImpl.CORE_JNDI_NAME);
    ageALT = coreBean.findById(Agences.class, "00001");
    context.close();
    
    context = MonetiqueUtil.initInterface("localhost",
            "8080");
    coreBean = (ICoreBean) context.lookup(TraitementBeanImpl.CORE_JNDI_NAME);
    ageALT = coreBean.findById(Agences.class, "002");
    context.close();
 

Любой вклад был бы полезен