📄 basejkconfig.java
字号:
} protected void generateContextMappings(Context context, PrintWriter mod_jk){ } /** Get the output Writer. Override with method to generate web server specific configuration. */ protected PrintWriter getWriter() throws IOException { return null; } /** Get the host associated with this Container (if any). */ protected Host getHost(Container child) { while(child != null && ! (child instanceof Host) ) { child = child.getParent(); } return (Host)child; } //-------------------- Properties -------------------- /** Append to config file. * Set to <code>true</code> if the config information should be * appended. */ public void setAppend(boolean apnd) { append = apnd; } /** If false, we'll try to generate a config that will * let apache serve static files. * The default is true, forward all requests in a context * to tomcat. */ public void setForwardAll( boolean b ) { forwardAll=b; } /** Special option - do not generate mappings for the ROOT context. The default is true, and will not generate the mappings, not redirecting all pages to tomcat (since /* matches everything). This means that the web server's root remains intact but isn't completely servlet/JSP enabled. If the ROOT webapp can be configured with the web server serving static files, there's no problem setting this option to false. If not, then setting it true means the web server will be out of picture for all requests. */ public void setNoRoot( boolean b ) { noRoot=b; } /** set a path to the parent directory of the conf folder. That is, the parent directory within which path setters would be resolved against, if relative. For example if ConfigHome is set to "/home/tomcat" and regConfig is set to "conf/mod_jk.conf" then the resulting path used would be: "/home/tomcat/conf/mod_jk.conf".</p> <p> However, if the path is set to an absolute path, this attribute is ignored. <p> If not set, execute() will set this to TOMCAT_HOME. <p> @param <b>dir</b> - path to a directory */ public void setConfigHome(String dir){ if( dir==null ) return; File f=new File(dir); if(!f.isDirectory()){ throw new IllegalArgumentException( "BaseConfig.setConfigHome(): "+ "Configuration Home must be a directory! : "+dir); } configHome = f; } /** set a path to the workers.properties file. @param <b>path</b> String path to workers.properties file */ public void setWorkersConfig(String path){ workersConfig= (path==null?null:new File(path)); } /** set the path to the log file @param <b>path</b> String path to a file */ public void setJkLog(String path){ jkLog= ( path==null?null:new File(path)); } /** Set the verbosity level ( use debug, error, etc. ) If not set, no log is written. */ public void setJkDebug( String level ) { jkDebug=level; } /** set the Ajp protocal @param <b>protocal</b> String protocol, "ajp12" or "ajp13" */ public void setJkWorker(String worker){ jkWorker = worker; } // -------------------- Initialize/guess defaults -------------------- /** Initialize defaults for properties that are not set explicitely */ protected void initProperties() { tomcatHome = System.getProperty("catalina.home"); File tomcatDir = new File(tomcatHome); if(configHome==null){ configHome=tomcatDir; } } // -------------------- Config Utils -------------------- /** Add an extension mapping. Override with method to generate web server specific configuration */ protected boolean addExtensionMapping( String ctxPath, String ext, PrintWriter pw ) { return true; } /** Add a fulling specified mapping. Override with method to generate web server specific configuration */ protected boolean addMapping( String fullPath, PrintWriter pw ) { return true; } // -------------------- General Utils -------------------- protected String getAbsoluteDocBase(Context context) { // Calculate the absolute path of the document base String docBase = context.getServletContext().getRealPath("/"); docBase = docBase.substring(0,docBase.length()-1); if (!isAbsolute(docBase)){ docBase = tomcatHome + "/" + docBase; } docBase = patch(docBase); return docBase; } // ------------------ Grabbed from FileUtil ----------------- public static File getConfigFile( File base, File configDir, String defaultF ) { if( base==null ) base=new File( defaultF ); if( ! base.isAbsolute() ) { if( configDir != null ) base=new File( configDir, base.getPath()); else base=new File( base.getAbsolutePath()); //?? } File parent=new File(base.getParent()); if(!parent.exists()){ if(!parent.mkdirs()){ throw new RuntimeException( "Unable to create path to config file :"+ base.getAbsolutePath()); } } return base; } public static String patch(String path) { String patchPath = path; // Move drive spec to the front of the path if (patchPath.length() >= 3 && patchPath.charAt(0) == '/' && Character.isLetter(patchPath.charAt(1)) && patchPath.charAt(2) == ':') { patchPath=patchPath.substring(1,3)+"/"+patchPath.substring(3); } // Eliminate consecutive slashes after the drive spec if (patchPath.length() >= 2 && Character.isLetter(patchPath.charAt(0)) && patchPath.charAt(1) == ':') { char[] ca = patchPath.replace('/', '\\').toCharArray(); char c; StringBuffer sb = new StringBuffer(); for (int i = 0; i < ca.length; i++) { if ((ca[i] != '\\') || (ca[i] == '\\' && i > 0 && ca[i - 1] != '\\')) { if (i == 0 && Character.isLetter(ca[i]) && i < ca.length - 1 && ca[i + 1] == ':') { c = Character.toUpperCase(ca[i]); } else { c = ca[i]; } sb.append(c); } } patchPath = sb.toString(); } // fix path on NetWare - all '/' become '\\' and remove duplicate '\\' if (System.getProperty("os.name").startsWith("NetWare") && path.length() >=3 && path.indexOf(':') > 0) { char[] ca = patchPath.replace('/', '\\').toCharArray(); StringBuffer sb = new StringBuffer(); for (int i = 0; i < ca.length; i++) { if ((ca[i] != '\\') || (ca[i] == '\\' && i > 0 && ca[i - 1] != '\\')) { sb.append(ca[i]); } } patchPath = sb.toString(); } return patchPath; } public static boolean isAbsolute( String path ) { // normal file if( path.startsWith("/" ) ) return true; if( path.startsWith(File.separator ) ) return true; // win c: if (path.length() >= 3 && Character.isLetter(path.charAt(0)) && path.charAt(1) == ':') return true; // NetWare volume: if (System.getProperty("os.name").startsWith("NetWare") && path.length() >=3 && path.indexOf(':') > 0) return true; return false; } protected void log(String msg) { System.err.println(msg); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -