2010-12-16 9 views
9

उदाहरण के लिए, मैं कैसे निर्धारित करूं कि मेरा सरल जेबॉस 4.2.3 सर्वर पोर्ट 8080 पर सुन रहा है?मैं कैसे पता लगा सकता हूं कि जेबॉस 4.2.3 का उपयोग करके प्रोग्रामिंग पर मेरा जेबॉस सर्वर कौन सा बंदरगाह सुन रहा है?

यह निकटतम मैं आने के लिए सक्षम किया गया है है, लेकिन यह काम नहीं करता:

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"); 
+0

जेबॉस दर्जनों बंदरगाहों पर सुनता है, यह केवल 8080 पर सुनता हुआ एम्बेडेड टॉमकैट HTTP कनेक्टर है, और यह बदलने की संभावना नहीं है। – skaffman

उत्तर

3

आप JMX के माध्यम से JBoss विन्यास विवरण प्राप्त कर सके, लेकिन उसके लिए आपको JBoss साथ संचार के लिए provider_url की आवश्यकता होगी।

//--- 

    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) को पार्स कर सकते हैं & वहां से विवरण निकालें।

16

लॉग आपके बूट अप की जाँच करें, एक लाइन नहीं होगा:

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

पिछले चार नंबर अपने वर्तमान बंदरगाह हैं। [8180 मेरे मामले में]

+0

ओपी, कृपया इस उत्तर को सही के रूप में नामित करें। मैंने पैट्रिक के निर्देशों का पालन किया और मेरे जेबॉस के लिए बंदरगाह वापस लिया। – Mushy

2

उत्तर के लिए देर हो चुकी है लेकिन आप jbossweb.sar में server.xml को अपनी प्रोफ़ाइल की निर्देशिका के तहत पढ़ सकते हैं। उस फ़ाइल में आपके पास कोयोट और अन्य कॉन्फ़िगरेशन पैरामीटर का बंदरगाह है। यह फ़ाइल वास्तव में उपयोगी है और यह वही है जिसे आप टॉमकैट में उपयोग करते हैं।

इसके अलावा आप यह जांचने के लिए "lsof -i tcp: 8080" का उपयोग कर सकते हैं कि यह पोर्ट JBoss AS या "netstat -nlp" के लिए बाध्यकारी है या नहीं। लेकिन अगर आपको बंदरगाह नहीं पता है तो मुझे लगता है कि सबसे अच्छा server.xml पढ़ा जाता है।

मुझे उम्मीद है कि उत्तर इसे पढ़ने वाले किसी भी व्यक्ति की मदद कर सकता है।

संबंधित मुद्दे

 संबंधित मुद्दे