Grosse MàJ

This commit is contained in:
olivier
2008-11-25 22:11:16 +01:00
parent 53195fdfcd
commit 3e719157ea
2980 changed files with 343846 additions and 0 deletions

View File

@ -0,0 +1,38 @@
<%
response.setHeader("WWW-Authenticate", "Basic realm=\"Tomcat Manager Application\"");
%>
<html>
<head>
<title>401 Unauthorized</title>
<style>
<!--
BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;font-size:12px;}
H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;}
PRE, TT {border: 1px dotted #525D76}
A {color : black;}A.name {color : black;}
-->
</style>
</head>
<body>
<h1>401 Unauthorized</h1>
<p>
You are not authorized to view this page. If you have not changed
any configuration files, please examine the file
<tt>conf/tomcat-users.xml</tt> in your installation. That
file will contain the credentials to let you use this webapp.
</p>
<p>
You will need to add <tt>manager</tt> role to the config file listed above.
For example:
<pre>
&lt;role rolename="manager"/&gt;
&lt;user username="tomcat" password="s3cret" roles="manager"/&gt;
</pre>
</p>
<p>
For more information - please see the
<a href="/docs/manager-howto.html">Manager App HOW-TO</a>.
</p>
</body>
</html>

View File

@ -0,0 +1 @@
<Context antiResourceLocking="false" privileged="true" />

View File

@ -0,0 +1,192 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<display-name>Tomcat Manager Application</display-name>
<description>
A scriptable management web application for the Tomcat Web Server;
Manager lets you view, load/unload/etc particular web applications.
</description>
<!-- Define the Manager Servlet
Change servlet-class to: org.apache.catalina.servlets.HTMLManagerServlet
to get a Servlet with a more intuitive HTML interface, don't change if you
have software that is expected to parse the output from ManagerServlet
since they're not compatible.
-->
<servlet>
<servlet-name>Manager</servlet-name>
<servlet-class>org.apache.catalina.manager.ManagerServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>HTMLManager</servlet-name>
<servlet-class>org.apache.catalina.manager.HTMLManagerServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>Status</servlet-name>
<servlet-class>org.apache.catalina.manager.StatusManagerServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>JMXProxy</servlet-name>
<servlet-class>org.apache.catalina.manager.JMXProxyServlet</servlet-class>
</servlet>
<!-- Define the Manager Servlet Mapping -->
<servlet-mapping>
<servlet-name>Manager</servlet-name>
<url-pattern>/list</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Manager</servlet-name>
<url-pattern>/sessions</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Manager</servlet-name>
<url-pattern>/start</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Manager</servlet-name>
<url-pattern>/stop</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Manager</servlet-name>
<url-pattern>/install</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Manager</servlet-name>
<url-pattern>/remove</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Manager</servlet-name>
<url-pattern>/deploy</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Manager</servlet-name>
<url-pattern>/undeploy</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Manager</servlet-name>
<url-pattern>/reload</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Manager</servlet-name>
<url-pattern>/save</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Manager</servlet-name>
<url-pattern>/serverinfo</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Manager</servlet-name>
<url-pattern>/roles</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Manager</servlet-name>
<url-pattern>/resources</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Status</servlet-name>
<url-pattern>/status/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>JMXProxy</servlet-name>
<url-pattern>/jmxproxy/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HTMLManager</servlet-name>
<url-pattern>/html/*</url-pattern>
</servlet-mapping>
<!-- Define reference to the user database for looking up roles -->
<resource-env-ref>
<description>
Link to the UserDatabase instance from which we request lists of
defined role names. Typically, this will be connected to the global
user database with a ResourceLink element in server.xml or the context
configuration file for the Manager web application.
</description>
<resource-env-ref-name>users</resource-env-ref-name>
<resource-env-ref-type>
org.apache.catalina.UserDatabase
</resource-env-ref-type>
</resource-env-ref>
<!-- Define a Security Constraint on this Application -->
<security-constraint>
<web-resource-collection>
<web-resource-name>HTMLManger and Manager command</web-resource-name>
<url-pattern>/jmxproxy/*</url-pattern>
<url-pattern>/html/*</url-pattern>
<url-pattern>/list</url-pattern>
<url-pattern>/sessions</url-pattern>
<url-pattern>/start</url-pattern>
<url-pattern>/stop</url-pattern>
<url-pattern>/install</url-pattern>
<url-pattern>/remove</url-pattern>
<url-pattern>/deploy</url-pattern>
<url-pattern>/undeploy</url-pattern>
<url-pattern>/reload</url-pattern>
<url-pattern>/save</url-pattern>
<url-pattern>/serverinfo</url-pattern>
<url-pattern>/status/*</url-pattern>
<url-pattern>/roles</url-pattern>
<url-pattern>/resources</url-pattern>
</web-resource-collection>
<auth-constraint>
<!-- NOTE: This role is not present in the default users file -->
<role-name>manager</role-name>
</auth-constraint>
</security-constraint>
<!-- Define the Login Configuration for this Application -->
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Tomcat Manager Application</realm-name>
</login-config>
<!-- Security roles referenced by this web application -->
<security-role>
<description>
The role that is required to log in to the Manager Application
</description>
<role-name>manager</role-name>
</security-role>
<error-page>
<error-code>401</error-code>
<location>/401.jsp</location>
</error-page>
</web-app>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 394 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

View File

@ -0,0 +1,132 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<%@page session="false" contentType="text/html; charset=ISO-8859-1" %>
<%@page import="java.util.Enumeration" %>
<%@page import="javax.servlet.http.HttpSession" %>
<%@page import="org.apache.catalina.Session" %>
<%@page import="org.apache.catalina.manager.JspHelper" %>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<%--!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"--%>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<% String path = (String) request.getAttribute("path");
Session currentSession = (Session)request.getAttribute("currentSession");
HttpSession currentHttpSession = currentSession.getSession();
String currentSessionId = currentSession.getId();
String submitUrl = ((HttpServletRequest)pageContext.getRequest()).getRequestURL().toString();
%>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
<meta http-equiv="pragma" content="no-cache"/><!-- HTTP 1.0 -->
<meta http-equiv="cache-control" content="no-cache,must-revalidate"/><!-- HTTP 1.1 -->
<meta http-equiv="expires" content="0"/><!-- 0 is an invalid value and should be treated as 'now' -->
<meta http-equiv="content-language" content="en"/>
<meta name="author" content="Cedrik LIME"/>
<meta name="copyright" content="copyright 2005-2007 the Apache Software Foundation"/>
<meta name="robots" content="noindex,nofollow,noarchive"/>
<title>Sessions Administration: details for <%= currentSessionId %></title>
</head>
<body>
<h1>Details for Session <%= JspHelper.escapeXml(currentSessionId) %></h1>
<table style="text-align: left;" border="0">
<tr>
<th>Session Id</th>
<td><%= currentSessionId %></td>
</tr>
<tr>
<th>Guessed Locale</th>
<td><%= JspHelper.guessDisplayLocaleFromSession(currentSession) %></td>
</tr>
<tr>
<th>Guessed User</th>
<td><%= JspHelper.guessDisplayUserFromSession(currentSession) %></td>
</tr>
<tr>
<th>Creation Time</th>
<td><%= JspHelper.getDisplayCreationTimeForSession(currentSession) %></td>
</tr>
<tr>
<th>Last Accessed Time</th>
<td><%= JspHelper.getDisplayLastAccessedTimeForSession(currentSession) %></td>
</tr>
<tr>
<th>Session Max Inactive Interval</th>
<td><%= JspHelper.secondsToTimeString(currentSession.getMaxInactiveInterval()) %></td>
</tr>
<tr>
<th>Used Time</th>
<td><%= JspHelper.getDisplayUsedTimeForSession(currentSession) %></td>
</tr>
<tr>
<th>Inactive Time</th>
<td><%= JspHelper.getDisplayInactiveTimeForSession(currentSession) %></td>
</tr>
<tr>
<th>TTL</th>
<td><%= JspHelper.getDisplayTTLForSession(currentSession) %></td>
</tr>
</table>
<p style="text-align: center;"><button type="button" onclick="window.location.reload()">Refresh</button></p>
<div class="error"><%= JspHelper.escapeXml(request.getAttribute("error")) %></div>
<div class="message"><%= JspHelper.escapeXml(request.getAttribute("message")) %></div>
<table style="text-align: left;" border="1" cellpadding="2" cellspacing="2">
<% int nAttributes = 0;
Enumeration attributeNamesEnumeration = currentHttpSession.getAttributeNames();
while (attributeNamesEnumeration.hasMoreElements()) {
attributeNamesEnumeration.nextElement();
++nAttributes;
}
%>
<caption style="font-variant: small-caps;"><%= JspHelper.formatNumber(nAttributes) %> attributes</caption>
<thead>
<tr>
<th>Remove Attribute</th>
<th>Attribute name</th>
<th>Attribute value</th>
</tr>
</thead>
<%--tfoot>
<tr>
<td colspan="3" style="text-align: center;">
TODO: set Max Inactive Interval on sessions
</td>
</tr>
</tfoot--%>
<tbody>
<% attributeNamesEnumeration = currentHttpSession.getAttributeNames();
while (attributeNamesEnumeration.hasMoreElements()) {
String attributeName = (String) attributeNamesEnumeration.nextElement();
%>
<tr>
<td align="center"><form action="<%= submitUrl %>"><div><input type="hidden" name="path" value="<%= path %>" /><input type="hidden" name="action" value="removeSessionAttribute" /><input type="hidden" name="sessionId" value="<%= currentSessionId %>" /><input type="hidden" name="attributeName" value="<%= attributeName %>" /><input type="submit" value="Remove" /></div></form></td>
<td><%= JspHelper.escapeXml(attributeName) %></td>
<td><% Object attributeValue = currentHttpSession.getAttribute(attributeName); %><span title="<%= attributeValue == null ? "" : attributeValue.getClass().toString() %>"><%= JspHelper.escapeXml(attributeValue) %></span></td>
</tr>
<% } // end while %>
</tbody>
</table>
<p style="text-align: center;"><button type="button" onclick="window.close()">Close window</button></p>
<%--div style="display: none;">
<p>
<a href="http://validator.w3.org/check?uri=referer"><img
src="http://www.w3.org/Icons/valid-html401"
alt="Valid HTML 4.01!" height="31" width="88"></a>
<a href="http://validator.w3.org/check?uri=referer"><img
src="http://www.w3.org/Icons/valid-xhtml10"
alt="Valid XHTML 1.0!" height="31" width="88" /></a>
<a href="http://validator.w3.org/check?uri=referer"><img
src="http://www.w3.org/Icons/valid-xhtml11"
alt="Valid XHTML 1.1!" height="31" width="88" /></a>
</p>
</div--%>
</body>
</html>

View File

@ -0,0 +1,122 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<%@page session="false" contentType="text/html; charset=ISO-8859-1" %>
<%@page import="java.util.Collection" %>
<%@page import="java.util.Iterator" %>
<%@page import="org.apache.catalina.manager.JspHelper" %>
<%@page import="org.apache.catalina.Session" %>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<% String path = (String) request.getAttribute("path");
String submitUrl = ((HttpServletRequest)pageContext.getRequest()).getRequestURL().append("?path=").append(path).toString();
Collection activeSessions = (Collection) request.getAttribute("activeSessions");
%>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
<meta http-equiv="pragma" content="no-cache"/><!-- HTTP 1.0 -->
<meta http-equiv="cache-control" content="no-cache,must-revalidate"/><!-- HTTP 1.1 -->
<meta http-equiv="expires" content="0"/><!-- 0 is an invalid value and should be treated as 'now' -->
<meta http-equiv="content-language" content="en"/>
<meta name="author" content="Cedrik LIME"/>
<meta name="copyright" content="copyright 2005-2007 the Apache Software Foundation"/>
<meta name="robots" content="noindex,nofollow,noarchive"/>
<title>Sessions Administration for <%= path %></title>
</head>
<body>
<h1>Sessions Administration for <%= path %></h1>
<p>Tips:</p>
<ul>
<li>Click on a column to sort.</li>
<li>To view a session details and/or remove a session attributes, click on its id.</li>
</ul>
<div class="error"><%= JspHelper.escapeXml(request.getAttribute("error")) %></div>
<div class="message"><%= JspHelper.escapeXml(request.getAttribute("message")) %></div>
<form action="<%= submitUrl %>" method="post" id="sessionsForm">
<fieldset><legend>Active HttpSessions informations</legend>
<input type="hidden" name="action" id="sessionsFormAction" value="injectSessions"/>
<input type="hidden" name="sort" id="sessionsFormSort" value="<%= (String) request.getAttribute("sort") %>"/>
<% String order = (String) request.getAttribute("order");
if (order == null || "".equals(order)) {
order = "ASC";
}
%>
<input type="hidden" name="order" id="sessionsFormSortOrder" value="<%= order %>"/>
<input type="submit" name="refresh" id="refreshButton" value="Refresh Sessions list" onclick="document.getElementById('sessionsFormAction').value='refreshSessions'; return true;"/>
<%= JspHelper.formatNumber(activeSessions.size()) %> active Sessions<br/>
<table border="1" cellpadding="2" cellspacing="2" width="100%">
<thead>
<tr>
<th><a onclick="document.getElementById('sessionsFormSort').value='id'; document.getElementById('refreshButton').click(); return true;">Session Id</a></th>
<th><a onclick="document.getElementById('sessionsFormSort').value='locale'; document.getElementById('refreshButton').click(); return true;">Guessed Locale</a></th>
<th><a onclick="document.getElementById('sessionsFormSort').value='user'; document.getElementById('refreshButton').click(); return true;">Guessed User name</a></th>
<th><a onclick="document.getElementById('sessionsFormSort').value='CreationTime'; document.getElementById('refreshButton').click(); return true;">Creation Time</a></th>
<th><a onclick="document.getElementById('sessionsFormSort').value='LastAccessedTime'; document.getElementById('refreshButton').click(); return true;">Last Accessed Time</a></th>
<th><a onclick="document.getElementById('sessionsFormSort').value='UsedTime'; document.getElementById('refreshButton').click(); return true;">Used Time</a></th>
<th><a onclick="document.getElementById('sessionsFormSort').value='InactiveTime'; document.getElementById('refreshButton').click(); return true;">Inactive Time</a></th>
<th><a onclick="document.getElementById('sessionsFormSort').value='TTL'; document.getElementById('refreshButton').click(); return true;"><span title="Time To Live">TTL</span></a></th>
</tr>
</thead>
<% if (activeSessions.size() > 10) { %>
<tfoot><%-- <tfoot> is the same as <thead> --%>
<tr>
<th><a onclick="document.getElementById('sessionsFormSort').value='id'; document.getElementById('refreshButton').click(); return true;">Session Id</a></th>
<th><a onclick="document.getElementById('sessionsFormSort').value='locale'; document.getElementById('refreshButton').click(); return true;">Guessed Locale</a></th>
<th><a onclick="document.getElementById('sessionsFormSort').value='user'; document.getElementById('refreshButton').click(); return true;">Guessed User name</a></th>
<th><a onclick="document.getElementById('sessionsFormSort').value='CreationTime'; document.getElementById('refreshButton').click(); return true;">Creation Time</a></th>
<th><a onclick="document.getElementById('sessionsFormSort').value='LastAccessedTime'; document.getElementById('refreshButton').click(); return true;">Last Accessed Time</a></th>
<th><a onclick="document.getElementById('sessionsFormSort').value='UsedTime'; document.getElementById('refreshButton').click(); return true;">Used Time</a></th>
<th><a onclick="document.getElementById('sessionsFormSort').value='InactiveTime'; document.getElementById('refreshButton').click(); return true;">Inactive Time</a></th>
<th><a onclick="document.getElementById('sessionsFormSort').value='TTL'; document.getElementById('refreshButton').click(); return true;"><span title="Time To Live">TTL</span></a></th>
</tr>
</tfoot>
<% } // end if %>
<tbody>
<% Iterator iter = activeSessions.iterator();
while (iter.hasNext()) {
Session currentSession = (Session) iter.next();
String currentSessionId = currentSession.getId();
%>
<tr>
<td>
<input type="checkbox" name="sessionIds" value="<%= currentSessionId %>" /><a href="<%= submitUrl %>&amp;action=sessionDetail&amp;sessionId=<%= currentSessionId %>" target="_new"><%= JspHelper.escapeXml(currentSessionId) %></a>
</td>
<td style="text-align: center;"><%= JspHelper.guessDisplayLocaleFromSession(currentSession) %></td>
<td style="text-align: center;"><%= JspHelper.guessDisplayUserFromSession(currentSession) %></td>
<td style="text-align: center;"><%= JspHelper.getDisplayCreationTimeForSession(currentSession) %></td>
<td style="text-align: center;"><%= JspHelper.getDisplayLastAccessedTimeForSession(currentSession) %></td>
<td style="text-align: center;"><%= JspHelper.getDisplayUsedTimeForSession(currentSession) %></td>
<td style="text-align: center;"><%= JspHelper.getDisplayInactiveTimeForSession(currentSession) %></td>
<td style="text-align: center;"><%= JspHelper.getDisplayTTLForSession(currentSession) %></td>
</tr>
<% } // end while %>
</tbody>
</table>
<p style="text-align: center;">
<input type="submit" name="invalidate" value="Invalidate selected Sessions" onclick="document.getElementById('sessionsFormAction').value='invalidateSessions'; return true;"/>
</p>
</fieldset>
</form>
<p style="text-align: center;"><button type="button" onclick="window.close()">Close window</button></p>
<%--div style="display: none;">
<p>
<a href="http://validator.w3.org/check?uri=referer"><img
src="http://www.w3.org/Icons/valid-html401"
alt="Valid HTML 4.01!" height="31" width="88"></a>
<a href="http://validator.w3.org/check?uri=referer"><img
src="http://www.w3.org/Icons/valid-xhtml10"
alt="Valid XHTML 1.0!" height="31" width="88" /></a>
<a href="http://validator.w3.org/check?uri=referer"><img
src="http://www.w3.org/Icons/valid-xhtml11"
alt="Valid XHTML 1.1!" height="31" width="88" /></a>
</p>
</div--%>
</body>
</html>

View File

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by peter lin (consultant) -->
<!--W3C Schema generated by XMLSPY v5 rel. 4 U (http://www.xmlspy.com)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:complexType name="connector">
<xs:sequence>
<xs:element name="threadInfo" type="threadInfo"/>
<xs:element name="requestInfo" type="requestInfo"/>
<xs:element name="workers" type="workers"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="jvm">
<xs:sequence>
<xs:element name="memory" type="memory"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="memory">
<xs:attribute name="free" type="xs:long" use="required"/>
<xs:attribute name="total" type="xs:long" use="required"/>
<xs:attribute name="max" type="xs:long" use="required"/>
</xs:complexType>
<xs:complexType name="requestInfo">
<xs:attribute name="maxTime" type="xs:long" use="required"/>
<xs:attribute name="processingTime" type="xs:int" use="required"/>
<xs:attribute name="requestCount" type="xs:long" use="required"/>
<xs:attribute name="errorCount" type="xs:long" use="required"/>
<xs:attribute name="bytesReceived" type="xs:long" use="required"/>
<xs:attribute name="bytesSent" type="xs:long" use="required"/>
</xs:complexType>
<xs:element name="status">
<xs:complexType>
<xs:sequence>
<xs:element name="jvm" type="jvm"/>
<xs:element name="connector" type="connector"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="threadInfo">
<xs:attribute name="maxThreads" type="xs:int" use="required"/>
<xs:attribute name="minSpareThreads" type="xs:int" use="required"/>
<xs:attribute name="maxSpareThreads" type="xs:int" use="required"/>
<xs:attribute name="currentThreadCount" type="xs:int" use="required"/>
<xs:attribute name="currentThreadsBusy" type="xs:int" use="required"/>
</xs:complexType>
<xs:complexType name="worker">
<xs:attribute name="stage" type="xs:string" use="required"/>
<xs:attribute name="requestProcessingTime" type="xs:int" use="required"/>
<xs:attribute name="requestBytesSent" type="xs:long" use="required"/>
<xs:attribute name="requestBytesRecieved" type="xs:long" use="required"/>
<xs:attribute name="remoteAddr" type="xs:string" use="required"/>
<xs:attribute name="virtualHost" type="xs:string" use="required"/>
<xs:attribute name="method" type="xs:string" use="required"/>
<xs:attribute name="currentUri" type="xs:string" use="required"/>
<xs:attribute name="currentQueryString" type="xs:string" use="required"/>
<xs:attribute name="protocol" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="workers">
<xs:sequence>
<xs:element name="worker" type="worker"/>
</xs:sequence>
</xs:complexType>
</xs:schema>

View File

@ -0,0 +1,96 @@
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<!-- Output method -->
<xsl:output encoding="iso-8859-1"
indent="no"/>
<xsl:template match="status">
<html>
<head>
<TITLE>Tomcat Status</TITLE>
<STYLE type="text/css">
body, table, tr, td, a, div, span {
vertical-align : top;
}
</STYLE>
</head>
<body>
<div style='font-size:20px;'>Tomcat Status</div>
<xsl:apply-templates select="jvm"/>
<xsl:apply-templates select="connector"/>
</body>
</html>
</xsl:template>
<xsl:template match="jvm">
<xsl:apply-templates select="memory"/>
</xsl:template>
<xsl:template match="memory">
<table><tr>
<td><b>JVM:</b></td>
<td><b>free:</b> <xsl:value-of select="@free"/></td>
<td><b>total:</b> <xsl:value-of select="@total"/></td>
<td><b>max:</b> <xsl:value-of select="@max"/></td>
</tr>
</table><hr />
</xsl:template>
<xsl:template match="connector">
<b>Connector -- </b> <xsl:value-of select="@name"/><br />
<xsl:apply-templates select="threadInfo"/>
<xsl:apply-templates select="requestInfo"/>
<xsl:apply-templates select="workers"/>
</xsl:template>
<xsl:template match="threadInfo">
<table><tr>
<td><b>threadInfo </b></td>
<td><b>maxThreads:</b> <xsl:value-of select="@maxThreads"/></td>
<td><b>minSpareThreads:</b> <xsl:value-of select="@minSpareThreads"/></td>
<td><b>maxSpareThreads:</b> <xsl:value-of select="@maxSpareThreads"/></td>
<td><b>currentThreadCount:</b> <xsl:value-of select="@currentThreadCount"/></td>
<td><b>currentThreadsBusy:</b> <xsl:value-of select="@currentThreadsBusy"/></td>
</tr>
</table><hr />
</xsl:template>
<xsl:template match="requestInfo">
<table><tr>
<td><b>requestInfo </b></td>
<td><b>maxTime:</b> <xsl:value-of select="@maxTime"/></td>
<td><b>processingTime:</b> <xsl:value-of select="@processingTime"/></td>
<td><b>requestCount:</b> <xsl:value-of select="@requestCount"/></td>
<td><b>errorCount:</b> <xsl:value-of select="@errorCount"/></td>
<td><b>bytesReceived:</b> <xsl:value-of select="@bytesReceived"/></td>
<td><b>bytesSent:</b> <xsl:value-of select="@bytesSent"/></td>
</tr>
</table><hr />
</xsl:template>
<xsl:template match="workers">
<table>
<tr><th>Stage</th><th>Time</th><th>B Sent</th><th>B Recv</th><th>Client</th><th>VHost</th><th>Request</th></tr>
<xsl:apply-templates select="worker"/>
</table><hr />
</xsl:template>
<xsl:template match="worker">
<tr>
<td><xsl:value-of select="@stage"/></td>
<td><xsl:value-of select="@requestProcessingTime"/></td>
<td><xsl:value-of select="@requestBytesSent"/></td>
<td><xsl:value-of select="@requestBytesReceived"/></td>
<td><xsl:value-of select="@remoteAddr"/></td>
<td><xsl:value-of select="@virtualHost"/></td>
<td><xsl:value-of select="@method"/> <xsl:value-of select="@currentUri"/>?<xsl:value-of select="@currentQueryString"/> <xsl:value-of select="@protocol"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>