Получение экземпляра ip из кластера weblogic - PullRequest
2 голосов
/ 21 ноября 2011

У меня проблема с тем, как получить URL-адрес экземпляра в кластере с помощью weblogic.

Описание: у нас есть 2 домена: X и Y. В каждом домене у меня есть 2 кластера: c01 и c02 В каждом кластере у меня есть экземпляры: s01, s02, s03, s04 В каждом случае у меня есть наша система, котораясодержит несколько компонентов, давайте назовем компоненты A, B, C и D. Я хочу сделать вызов REST от A до D, которые все еще находятся в том же экземпляре.Как мы получим URL и порт для этой службы REST программным способом?

Проблема в том, что я просто получаю URL кластера при вызове InetAddress или чего-то подобного.Я также поиграл с MBean, но мы не уверены, что это правильный путь, так как у меня не будет никакого пользователя / пасса для заполнения объекта Enviroment при создании контекста.

Мы не хотим использовать это как свойство сборки, так как мы не хотим делать сборки для каждого отдельного экземпляра.

Конверт: SpringIntegration Weblogic 10.3.3 Джерси Мейвен

Спасибо

1 Ответ

1 голос
/ 05 декабря 2011

Решение:

Получено из RuntimeServiceMBean:

service = new ObjectName(
                "com.bea:Name=RuntimeService,Type=weblogic.management.mbeanservers.runtime.RuntimeServiceMBean");

        InitialContext ctx = new InitialContext();
        MBeanServer mBeanServer = (MBeanServer) ctx.lookup("java:comp/env/jmx/runtime");

        ObjectName rt = (ObjectName) mBeanServer.getAttribute(service, "ServerRuntime");
        listenAddress = (String) mBeanServer.getAttribute(rt, "ListenAddress");
        server = listenAddress.substring(0, listenAddress.indexOf("/"));
        port = (Integer)mBeanServer.getAttribute(rt, "ListenPort");         
...