Как узнать, какой порт мой сервер jboss прослушивает программно с помощью JBoss 4.2.3? - PullRequest
11 голосов
/ 17 декабря 2010

Например, как мне определить, что мой простой сервер JBoss 4.2.3 прослушивает порт 8080?

Это самое близкое, что я смог приехать, но это не работает:

MBeanServerConnection server = (MBeanServerConnection)new InitialContext()
    .lookup("jmx/rmi/RMIAdaptor");
ObjectName on = new ObjectName(
    "jboss:readonly=true,service=invoker,target=Naming,type=http");
String port = (String)server.getAttribute(on, "InvokerURLSuffix");

Ответы [ 4 ]

20 голосов
/ 15 ноября 2011

Проверьте журнал загрузки, появится строка:

21:03:10,415 INFO  [Http11AprProtocol] Initializing Coyote HTTP/1.1 on http-127.0.0.1-8180

Последние четыре цифры - ваш текущий порт. [8180 в моем случае]

4 голосов
/ 23 мая 2014

Уже поздно отвечать, но вы можете прочитать файл server.xml в jbossweb.sar в каталоге deploy вашего профиля. В этом файле у вас есть порт Coyote и другие параметры конфигурации. Этот файл действительно полезен, и он тот же, что вы используете в Tomcat.

Также вы можете использовать «lsof -i tcp: 8080», чтобы проверить, привязан ли этот порт к JBoss AS или «netstat -nlp». Но если вы не знаете порт, я думаю, что лучше всего прочитать server.xml.

Я надеюсь, что ответ может помочь любому, кто его читает.

3 голосов
/ 22 декабря 2010

Вы можете получить подробную информацию о конфигурации JBoss через JMX, но для этого вам понадобится provider_url для связи с JBoss.

    //---

    Hashtable props = new Hashtable();
    props.put(InitialContext.PROVIDER_URL, "jnp://localhost:1099");
    props.put(InitialContext.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");

    InitialContext ctx = new InitialContext(props);

    MBeanServerConnection serverConn = (MBeanServerConnection)ctx.lookup("jmx/rmi/RMIAdaptor");

    ObjectName namingObject= new ObjectName("jboss:service=Naming");  
    Object rmiPort = serverConn.getAttribute(namingObject, "RmiPort");
    Object bindAddress = serverConn.getAttribute(name1, "BindAddress");
    Object port = serverConn.getAttribute(name1, "Port");

    System.out.println("rmiPort : "+rmiPort + "bindAddress : " + bindAddress + "port : "+port);

    String[] domains = serverConn.getDomains();

    for(int i =0; i < domains.length; i++){
        System.out.println(domains[i]);
    }

   ObjectName obj = ObjectName.getInstance("jboss.system", "type", "Server");
   Boolean serverStatus = (Boolean) serverConn.getAttribute(obj, "Started");
   System.out.println("Server started : "+serverStatus);

    //---

Вы можете использовать другие атрибуты для извлечения информации.

В противном случае,Вы можете проанализировать файл конфигурации (jboss-service.xml) и извлечь из него подробности.

2 голосов
/ 14 марта 2018

Выполните ps -ef для проверки процесса jboss.

Там проверьте следующий параметр.

-Djboss.socket.binding.port-offset=1010

Добавьте 8080 к значению смещения, вы получите порт, которыйслушать.Например, для меня jboss слушает порт 9090.Итак ( 8080 + смещение <1010> = 9090 )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...