2010-11-20 14 views
0

altında çalışmakta olduğunu belirleme Bazı kodlar Java EE Application server dahil olmak üzere çeşitli ortamlarda yeniden kullanılabilir. Bazen kodun uygulama sunucusu altında çalışıp çalışmadığını ve hangi uygulama sunucusunun geçerli olduğunu bilmek hoştur.Uygulamanın uygulama sunucusu

Uygulama sunucusu için tipik olan bazı sistem özelliklerini kontrol ederek yapmayı tercih ediyorum. Örneğin o birileri diğer sunucular için uygun özellik adını biliyor mu

Tomcat için JBoss

  • catalina.base için

    • jboss.server.name olabilir? Weblogic, Websphere, Oracle IAS, diğerleri?

      Belirli bir uygulama sunucusunun yüklü olup olmadığını kontrol etmek çok kolaydır. Herhangi bir JSP, Servlet, EJB'ye System.getProperties() satırını eklemeniz ve sonucu yazdırmanız yeterlidir.

      Kendim yapabilirim ancak sunucu yüklemek ve çalışmasını sağlamak çok zaman alacak.

      Bu tartışmayı okudum: How to determine type of Application Server an application is running on?

      Ama sistem özelliğini kullanmayı tercih ediyorum. Bu daha kolay ve kesinlikle taşınabilir bir çözümdür. Kod, Servlet, EJBContext veya JMX gibi başka bir API'ye bağlı değildir.

  • cevap

    1

    Bu 'standart' bir yol değil, yaptığım şey bir AppServer Sınıfını yüklemeye çalışmaktı.

    içindi.

    deneyin {
    Sınıf cl = Thread.getContextClassLoader() loadClass ("com.ibm.websphere.runtime.ServerName");

    bulundu //
    // Bulunamadı

    }
    catch (Atılabil) {

    }

    // Tomcat için: "org.apache.catalina.xxx"

    Vb

    jboss.home.dir 
    jboss.server.name 
    

    Sen örnek visualvm veya diğer araçlar için de kullanan diğer özelliklerini kontrol edebilirsiniz: mürekkep

    1

    JBoss AS diffrent sistem özelliklerinin bir sürü ayarlar.

    Diğer sunucuları bilmiyorum ama her biri için bir çeşit özellik bulabileceğinizi düşünüyorum.