例如,如何确定我的简单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");
Run Code Online (Sandbox Code Playgroud)
Pat*_*ick 20
检查你的启动日志,会有一行:
21:03:10,415 INFO [Http11AprProtocol] Initializing Coyote HTTP/1.1 on http-127.0.0.1-8180
Run Code Online (Sandbox Code Playgroud)
最后四个数字是您当前的端口.[8180在我的情况下]
您可以通过 JMX 获取 JBoss 配置详细信息,但为此您将需要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);
//---
Run Code Online (Sandbox Code Playgroud)
您可以使用其他属性来获取信息。
否则,您可以解析配置文件(jboss-service.xml)并从中提取详细信息。
| 归档时间: |
|
| 查看次数: |
51516 次 |
| 最近记录: |