package com.ibm.ivj.wte.samples.servletconfig; // Licensed Material - Property of IBM // (C) Copyright IBM Corp. 2000 - All Rights Reserved // // DISCLAIMER: // The following [enclosed] code is sample code created by IBM // Corporation. This sample code is not part of any standard IBM product // and is provided to you solely for the purpose of assisting you in the // development of your applications. The code is provided 'AS IS', // without warranty or condition of any kind. IBM shall not be liable for any damages // arising out of your use of the sample code, even if IBM has been // advised of the possibility of such damages. import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.Enumeration; import com.ibm.servlet.engine.*; import com.ibm.servlet.engine.srt.*; import com.ibm.servlet.engine.config.*; import com.ibm.servlet.util.*; import java.util.*; /** * Config Dumper * *

This servlet dumps the current servlet engine configuration */ public class ServletEngineConfigDumper extends HttpServlet { private static final String copyright = "(c) Copyright IBM Corporation 2000."; public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { // Set a break point at the next line String cmd = req.getParameter("cmd"); if ( cmd == null ) { res.setContentType("text/html"); PrintWriter out = res.getWriter(); out.println("Current Servlet Engine Configuration"); ServletEngineInfo engineInfo = ServletEngine.getEngine().getInfo(); out.println("

Current Servlet Engine Configuration


"); out.println("

Supported Transports - Active Transport is Bold

"); Enumeration suppTrans = engineInfo.getSupportedTransportNames(); out.println(""); out.println(""); while ( suppTrans.hasMoreElements() ) { TransportInfo transInfo = (TransportInfo)engineInfo.getTransportInfo((String)suppTrans.nextElement()); out.println(""); } out.println("
NameCodeArguments
"); if ( transInfo.getName().equals(engineInfo.getActiveTransportName()) ) { out.println("" + transInfo.getName() + "" + transInfo.getCode() + ""); Properties args = transInfo.getArgs(); Enumeration argsList = args.keys(); out.println("
    "); while ( argsList.hasMoreElements() ) { String argName = (String)argsList.nextElement(); String argValue = args.getProperty(argName); out.println("
  • " + argName + ": " + argValue + ""); } } else { out.println(transInfo.getName() + "
" + transInfo.getCode() + ""); Properties args = transInfo.getArgs(); Enumeration argsList = args.keys(); out.println("
    "); while ( argsList.hasMoreElements() ) { String argName = (String)argsList.nextElement(); String argValue = args.getProperty(argName); out.println("
  • " + argName + ": " + argValue); } } out.println("

"); Enumeration enum = engineInfo.getServletHostNames(); while ( enum.hasMoreElements() ) { try { out.println("

Virtual Hosts

"); String name = (String)enum.nextElement(); out.println("

Configuration for Virtual Host: " + name + "

"); } catch ( Exception ex ) { ex.printStackTrace(); } } out.println("

WebSphere Application Server Version Info

"); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println("
Product Name" + WASSystem.getProductName() + "
Product Edition" + WASSystem.getProductEdition() + "
Product Version" + WASSystem.getProductVersion() + "
Product Major Version" + WASSystem.getProductMajorVersion() + "
Product Minor Version" + WASSystem.getProductMinorVersion() + "
Product Service Level" + WASSystem.getProductServiceLevel() + "
Product Build Level" + WASSystem.getProductBuild() + "
Product Build Date" + WASSystem.getProductBuildDate() + "

"); out.println("

System Properties

"); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); Enumeration propKeys = System.getProperties().keys(); while ( propKeys.hasMoreElements() ) { String key = (String)propKeys.nextElement(); if ( !key.equals("os.name") && !key.equals("os.version") && !key.equals("os.arch") && !key.equals("java.version") && !key.equals("java.vendor") && !key.equals("java.vendor.url") && !key.equals("java.class.version") && !key.equals("java.home") && !key.equals("java.compiler") && !key.equals("java.class.path") && !key.equals("file.separator") && !key.equals("path.separator") && !key.equals("line.separator") && !key.equals("user.name") && !key.equals("user.home") && !key.equals("user.dir") && !key.equals("user.language") && !key.equals("user.region") && !key.equals("user.timezone") && !key.equals("file.encoding") && !key.equals("file.encoding.pkg") ) { String value = System.getProperty(key); out.println(""); } } out.println("
PropertyValue
Operating System" + System.getProperty("os.name") + "
Operating System Version" + System.getProperty("os.version") + "
Hardware Architecture" + System.getProperty("os.arch") + "
JVM Version" + System.getProperty("java.version") + "
JVM Vendor" + System.getProperty("java.vendor") + "
JVM Vendor URL" + System.getProperty("java.vendor.url") + "
JVM Class Version" + System.getProperty("java.class.version") + "
JVM Home Directory" + System.getProperty("java.home") + "
JVM Compiler (JIT)" + System.getProperty("java.compiler") + "
JVM Class Path
    "); String cp = System.getProperty("java.class.path"); StringTokenizer tokenizer = new StringTokenizer(cp, File.pathSeparator); while ( tokenizer.hasMoreTokens() ) { out.println("
  • " + tokenizer.nextToken()); } out.println("
File Separator" + System.getProperty("file.separator") + "
Path Separator" + System.getProperty("path.separator") + "
Line Separator" + System.getProperty("line.separator") + "
User Name" + System.getProperty("user.name") + "
User Home Directory" + System.getProperty("user.home") + "
Current Working Directory" + System.getProperty("user.dir") + "
User Language" + System.getProperty("user.language") + "
User Region" + System.getProperty("user.region") + "
User Timezone" + System.getProperty("user.timezone") + "
File Encoding" + System.getProperty("file.encoding") + "
File Encoding Package" + System.getProperty("file.encoding.pkg") + "
" + key + "" + value + "
"); out.println("
"); out.println("Back to the Samples Index Page"); out.println(""); out.flush(); out.close(); } else if ( cmd.equalsIgnoreCase("mime") ) { String vhost = req.getParameter("vhost"); ServletEngineInfo engineInfo = ServletEngine.getEngine().getInfo(); ServletHostInfo vhinfo = engineInfo.getServletHostInfo(vhost); res.setContentType("text/html"); PrintWriter out = res.getWriter(); out.println("Mime Table for Virtual Host - " + vhost + ""); out.println("

Mime Table for Virtual Host " + vhost + "



"); out.println(""); out.println(""); Hashtable mimemap = vhinfo.getMimeMap(); Enumeration mimeenum = mimemap.keys(); while ( mimeenum.hasMoreElements() ) { String ext = (String)mimeenum.nextElement(); String type = (String)mimemap.get(ext); out.println(""); } out.println("
File ExtensionMime Type
" + ext + "" + type + "
"); out.println("


"); out.println("Back to the Samples Index Page"); out.println(""); out.flush(); out.close(); } else if ( cmd.equalsIgnoreCase("virtualHost") ) { try { String name = req.getParameter("vhost"); ServletEngineInfo engineInfo = ServletEngine.getEngine().getInfo(); ServletHostInfo hostInfo = engineInfo.getServletHostInfo(name); res.setContentType("text/html"); PrintWriter out = res.getWriter(); out.println("Configuration for Virtual Host " + name + ""); out.println("

Configuration for Virtual Host " + name + "


"); out.println(""); out.println(""); Enumeration bindings = engineInfo.getHostnameBindingInfos(); while ( bindings.hasMoreElements() ) { HostnameBindingInfo binding = (HostnameBindingInfo)bindings.nextElement(); out.println(""); } out.println("
Supported DNS Names (Alias List)
" + binding.getHostname() + "
"); out.println("

Mime Table

"); Enumeration enum2 = hostInfo.getWebGroupNames(); while ( enum2.hasMoreElements() ) { String groupName = (String)enum2.nextElement(); out.println("

Configuration for Web Application: " + groupName + "

"); } out.println("
"); out.println("Back to the Samples Index Page"); out.println(""); } catch ( Exception ex ) { ex.printStackTrace(); } } else if ( cmd.equalsIgnoreCase("webapp") ) { String vhost = req.getParameter("vhost"); String webgroup = req.getParameter("webgroup"); ServletEngineInfo engineInfo = ServletEngine.getEngine().getInfo(); ServletHostInfo vhinfo = engineInfo.getServletHostInfo(vhost); WebGroupInfo wgInfo = vhinfo.getWebGroupInfo(webgroup); WebAppInfo appInfo = wgInfo.getWebAppInfo(); String serverName = req.getServerName() + ":" + req.getServerPort(); Enumeration hnames = engineInfo.getHostnameBindingInfos(); while ( hnames.hasMoreElements() ) { HostnameBindingInfo bindingInfo = (HostnameBindingInfo)hnames.nextElement(); if ( bindingInfo.getServletHostName().equals(vhost) ) { if ( !bindingInfo.getHostname().equals("localhost") ) { serverName = bindingInfo.getHostname(); break; } } } res.setContentType("text/html"); PrintWriter out = res.getWriter(); try { out.println("Configuration for " + webgroup + ""); out.println("

Configuration for Web Application " + webgroup + "


"); out.println("

Web Application Settings

"); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println("
Description:" + appInfo.getDescription() + "
Virtual Host:" + vhost + "
Engine:" + engineInfo.getName() + "
Document Root:" + wgInfo.getDocumentRoot() + "
Classpath:" + wgInfo.getClasspath() + "
Root URI:" + wgInfo.getRootURI() + "
Shared Context In Use:" + wgInfo.isSharedContext() + "
Shared Context JNDI Name:" + wgInfo.getSharedContextJNDIName() + "
Auto reload:" + wgInfo.isAutoReload() + "
Auto reload polling interval:" + wgInfo.getAutoReloadPollingInterval() / 1000 + " seconds
Error Page:" + appInfo.getErrorPage() + "
"); out.println("

Web Application Attributes

"); out.println(""); out.println(""); Enumeration ae = appInfo.getAttributeNames(); while ( ae.hasMoreElements() ) { String name = (String)ae.nextElement(); AttributeInfo attrInfo = appInfo.getAttributeInfo(name); out.println(""); out.println(""); out.println(""); if ( attrInfo.getType().equals(AttributeInfo.TYPE_STRING) ) { out.println(""); } else { out.println(""); } out.println(""); } out.println("
Attribute NameTypeValue
" + attrInfo.getName() + "" + attrInfo.getType() + "" + attrInfo.getString() + "" + attrInfo.getBeanInfo().toString() + "
"); out.println("

Mime Filters

"); out.println(""); out.println(""); Enumeration me = appInfo.getMimeFilterTypes(); while ( me.hasMoreElements() ) { String name = (String)me.nextElement(); MimeFilterInfo mimeInfo = appInfo.getMimeFilterInfo(name); out.println(""); out.println(""); out.println(""); out.println(""); } out.println("
Mime TypeServlet Name
" + mimeInfo.getMimeType() + "" + mimeInfo.getServletName() + "
"); out.println("

Servlet Information

"); out.println(""); out.println(""); Enumeration e1 = appInfo.getServletNames(); while ( e1.hasMoreElements() ) { out.println(""); String servletName = (String)e1.nextElement(); ServletInfo sinfo = appInfo.getServletInfoByName(servletName); out.println(""); out.println(""); String code = sinfo.getCode(); if ( code.lastIndexOf(".") != -1 ) { String codePkg = code; code = code.substring(code.lastIndexOf(".") + 1); codePkg = codePkg.substring(0, codePkg.lastIndexOf(".")); out.println(""); } else { out.println(""); } out.println(""); out.println(""); out.println(""); } out.println("
NameDescriptionCodeAuto-startInit ParametersPaths
" + sinfo.getName() + "" + sinfo.getDescription() + "" + code + "
" + codePkg + "
" + code + "" + sinfo.isAutostart() + "
    "); Enumeration e2 = sinfo.getInitParameterNames(); while ( e2.hasMoreElements() ) { String initName = (String)e2.nextElement(); out.println("
  • " + initName + ": " + sinfo.getInitParameter(initName)); } out.println("
    "); Enumeration e3 = sinfo.getServletPaths(); while ( e3.hasMoreElements() ) { String path = (String)e3.nextElement(); String ref = "http://" + serverName + wgInfo.getRootURI(); if ( ref.endsWith("/") ) ref = ref.substring(0, ref.length() - 1); ref += path; out.println("
  • " + path); } out.println("
"); } catch ( Exception ex ) { ex.printStackTrace(); } out.println("
"); out.println("Back to the Samples Index Page"); out.println(""); out.flush(); out.close(); } } }