• java判断部署项目使用的服务器类型


    有两种方式

    1、项目引入portal-kernel.jar、项目运行时使用

    根据返回boolean值判断类型!

    2、自己写java类

    package webService.ZFGX.service;
    
    import org.apache.log4j.Logger;
    
    import webService.ZFGX.utils.ServerUtils;
    
    
    
    /**
     * 判断服务器类型
     * @author landa
     *
     */
    public class PDFWQ {
        private static Logger _log = Logger.getLogger(ServerUtils.class);
        public static final String GERONIMO_CLASS = "/org/apache/geronimo/system/main/Daemon.class";
        public static final String JBOSS_CLASS = "/org/jboss/Main.class";
        public static final String JETTY_CLASS = "/org/mortbay/jetty/Server.class";
        public static final String JONAS_CLASS = "/org/objectweb/jonas/server/Server.class";
        public static final String OC4J_CLASS = "/oracle/jsp/oc4jutil/Oc4jUtil.class";
        public static final String ORION_CLASS = "/com/evermind/server/ApplicationServer.class";
        public static final String PRAMATI_CLASS = "/com/pramati/Server.class";
        public static final String RESIN_CLASS = "/com/caucho/server/resin/Resin.class";
        public static final String REXIP_CLASS = "/com/tcc/Main.class";
        public static final String SUN7_CLASS = "/com/iplanet/ias/tools/cli/IasAdminMain.class";
        public static final String SUN8_CLASS = "/com/sun/enterprise/cli/framework/CLIMain.class";
        public static final String TOMCAT_CLASS = "/org/apache/catalina/startup/Bootstrap.class";
        public static final String WEBLOGIC_CLASS = "/weblogic/Server.class";
        public static final String WEBSPHERE_CLASS = "/com/ibm/websphere/product/VersionInfo.class";
        
        private String _serverId;
        private Boolean _geronimo;
        private Boolean _jBoss;
        private Boolean _jetty;
        private Boolean _jonas;
        private Boolean _oc4j;
        private Boolean _orion;
        private Boolean _pramati;
        private Boolean _resin;
        private Boolean _rexIP;
        private Boolean _sun7;
        private Boolean _sun8;
        private Boolean _tomcat;
        private Boolean _webLogic;
        private Boolean _webSphere;
        
    
        private PDFWQ() {
        }
        
        private static PDFWQ  _instance = new PDFWQ();
        
        public static String getServerId() {
            PDFWQ  sd = _instance;
            if (sd._serverId == null) {
                if (ServerUtils.isGeronimo()) {
                    sd._serverId = "geronimo";
                } else if (ServerUtils.isJBoss()) {
                    sd._serverId = "jboss";
                } else if (ServerUtils.isJOnAS()) {
                    sd._serverId = "jonas";
                } else if (ServerUtils.isOC4J()) {
                    sd._serverId = "oc4j";
                } else if (ServerUtils.isOrion()) {
                    sd._serverId = "orion";
                } else if (ServerUtils.isResin()) {
                    sd._serverId = "resin";
                } else if (ServerUtils.isWebLogic()) {
                    sd._serverId = "weblogic";
                } else if (ServerUtils.isWebSphere()) {
                    sd._serverId = "websphere";
                }
                if (ServerUtils.isJetty()) {
                    if (sd._serverId == null) {
                        sd._serverId = "jetty";
                    } else {
                        sd._serverId += "-jetty";
                    }
                } else if (ServerUtils.isTomcat()) {
                    if (sd._serverId == null) {
                        sd._serverId = "tomcat";
                    } else {
                        sd._serverId += "-tomcat";
                    }
                }
                if (_log.isInfoEnabled()) {
                    _log.info("Detected server " + sd._serverId);
                }
                if (sd._serverId == null) {
                    throw new RuntimeException("Server is not supported");
                }
            }
            return sd._serverId;
        }
        
        
        public static boolean isGeronimo() {
            PDFWQ sd = _instance;
            if (sd._geronimo == null) {
                Class c = sd.getClass();
                if (c.getResource(GERONIMO_CLASS) != null) {
                    sd._geronimo = Boolean.TRUE;
                } else {
                    sd._geronimo = Boolean.FALSE;
                }
            }
            return sd._geronimo.booleanValue();
        }
    
        public static boolean isJBoss() {
            PDFWQ sd = _instance;
            if (sd._jBoss == null) {
                Class c = sd.getClass();
                if (c.getResource(JBOSS_CLASS) != null) {
                    sd._jBoss = Boolean.TRUE;
                } else {
                    sd._jBoss = Boolean.FALSE;
                }
            }
            return sd._jBoss.booleanValue();
        }
    
        public static boolean isJetty() {
            PDFWQ sd = _instance;
            if (sd._jetty == null) {
                Class c = sd.getClass();
                if (c.getResource(JETTY_CLASS) != null) {
                    sd._jetty = Boolean.TRUE;
                } else {
                    sd._jetty = Boolean.FALSE;
                }
            }
            return sd._jetty.booleanValue();
        }
    
        public static boolean isJOnAS() {
            PDFWQ sd = _instance;
            if (sd._jonas == null) {
                Class c = sd.getClass();
                if (c.getResource(JONAS_CLASS) != null) {
                    sd._jonas = Boolean.TRUE;
                } else {
                    sd._jonas = Boolean.FALSE;
                }
            }
            return sd._jonas.booleanValue();
        }
    
        public static boolean isOC4J() {
            PDFWQ sd = _instance;
            if (sd._oc4j == null) {
                Class c = sd.getClass();
                if (c.getResource(OC4J_CLASS) != null) {
                    sd._oc4j = Boolean.TRUE;
                } else {
                    sd._oc4j = Boolean.FALSE;
                }
            }
            return sd._oc4j.booleanValue();
        }
    
        public static boolean isOrion() {
            PDFWQ sd = _instance;
            if (sd._orion == null) {
                Class c = sd.getClass();
                if (c.getResource(ORION_CLASS) != null) {
                    sd._orion = Boolean.TRUE;
                } else {
                    sd._orion = Boolean.FALSE;
                }
            }
            return sd._orion.booleanValue();
        }
    
        public static boolean isPramati() {
            PDFWQ sd = _instance;
            if (sd._pramati == null) {
                Class c = sd.getClass();
                if (c.getResource(PRAMATI_CLASS) != null) {
                    sd._pramati = Boolean.TRUE;
                } else {
                    sd._pramati = Boolean.FALSE;
                }
            }
            return sd._pramati.booleanValue();
        }
    
        public static boolean isResin() {
            PDFWQ sd = _instance;
            if (sd._resin == null) {
                Class c = sd.getClass();
                if (c.getResource(RESIN_CLASS) != null) {
                    sd._resin = Boolean.TRUE;
                } else {
                    sd._resin = Boolean.FALSE;
                }
            }
            return sd._resin.booleanValue();
        }
    
        public static boolean isRexIP() {
            PDFWQ sd = _instance;
            if (sd._rexIP == null) {
                Class c = sd.getClass();
                if (c.getResource(REXIP_CLASS) != null) {
                    sd._rexIP = Boolean.TRUE;
                } else {
                    sd._rexIP = Boolean.FALSE;
                }
            }
            return sd._rexIP.booleanValue();
        }
    
        public static boolean isSun() {
            if (isSun7() || isSun8()) {
                return true;
            } else {
                return false;
            }
        }
    
        public static boolean isSun7() {
            PDFWQ sd = _instance;
            if (sd._sun7 == null) {
                Class c = sd.getClass();
                if (c.getResource(SUN7_CLASS) != null) {
                    sd._sun7 = Boolean.TRUE;
                } else {
                    sd._sun7 = Boolean.FALSE;
                }
            }
            return sd._sun7.booleanValue();
        }
    
        public static boolean isSun8() {
            PDFWQ sd = _instance;
            if (sd._sun8 == null) {
                Class c = sd.getClass();
                if (c.getResource(SUN8_CLASS) != null) {
                    sd._sun8 = Boolean.TRUE;
                } else {
                    sd._sun8 = Boolean.FALSE;
                }
            }
            return sd._sun8.booleanValue();
        }
    
        public static boolean isTomcat() {
            PDFWQ sd = _instance;
            if (sd._tomcat == null) {
                Class c = sd.getClass();
                if (c.getResource(TOMCAT_CLASS) != null) {
                    sd._tomcat = Boolean.TRUE;
                } else {
                    sd._tomcat = Boolean.FALSE;
                }
            }
            return sd._tomcat.booleanValue();
        }
    
        public static boolean isWebLogic() {
            PDFWQ sd = _instance;
            if (sd._webLogic == null) {
                Class c = sd.getClass();
                if (c.getResource(WEBLOGIC_CLASS) != null) {
                    sd._webLogic = Boolean.TRUE;
                } else {
                    sd._webLogic = Boolean.FALSE;
                }
            }
            return sd._webLogic.booleanValue();
        }
    
        public static boolean isWebSphere() {
            PDFWQ sd = _instance;
            if (sd._webSphere == null) {
                Class c = sd.getClass();
                if (c.getResource(WEBSPHERE_CLASS) != null) {
                    sd._webSphere = Boolean.TRUE;
                } else {
                    sd._webSphere = Boolean.FALSE;
                }
            }
            return sd._webSphere.booleanValue();
        }
        
    }

    然后判断方式与方法一一致!

  • 相关阅读:
    WCF ria services完美登陆功能(10)
    利用DYCOM快速建立wcf服务器端
    DYCom简要介绍
    断剑
    生命的价值
    飞翔的蜘蛛
    JSP中如何获取select标签选中的值
    wrapClass
    iconfont 在vue项目中的应用(iconcomponent组件)
    正则表达式
  • 原文地址:https://www.cnblogs.com/vitre/p/5546171.html
Copyright © 2020-2023  润新知