I am using Tomcat4 and I experienced a problem
similar to Guy Geens' (http://www.mail-archive.com/debian-java@lists.debian.org/msg01356.html),
but the problem comes only accessing to Tomcat trough Apache (using
mod_webapp).
I used Tomcat 4.0.3 and I had no problem. Now, with Tomcat4.1.12, I have this strange behaviour: - using the manager application through the Coyote
HTTP/1.1 Connector on port 8080 I have no problem;
- using the manager application through Apache web server, using the WarpConnector on port 8008 (using mod_webapp), after giving the user and password to autenticate myself on the manager context, I get this exception: HTTP Status 500 - Internal Server
Error
--------------------------------------------------------------------------------
type Exception report
message Internal Server Error
description The server encountered an internal
error (Internal Server Error) that prevented it from fulfilling this
request.
exception
javax.servlet.ServletException: Error allocating a
servlet instance
at org.apache.catalina.core.StandardWrapper.allocate(Unknown Source) at org.apache.catalina.core.StandardWrapperValve.invoke(Unknown Source) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Unknown Source) at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source) at org.apache.catalina.core.ContainerBase.invoke(Unknown Source) at org.apache.catalina.core.StandardContextValve.invoke(Unknown Source) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Unknown Source) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Unknown Source) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Unknown Source) at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source) at org.apache.catalina.core.ContainerBase.invoke(Unknown Source) at org.apache.catalina.core.StandardContext.invoke(Unknown Source) at org.apache.catalina.core.StandardHostValve.invoke(Unknown Source) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Unknown Source) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(Unknown Source) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Unknown Source) at org.apache.catalina.valves.ErrorReportValve.invoke(Unknown Source) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Unknown Source) at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source) at org.apache.catalina.core.ContainerBase.invoke(Unknown Source) at org.apache.catalina.core.StandardEngineValve.invoke(Unknown Source) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Unknown Source) at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source) at org.apache.catalina.core.ContainerBase.invoke(Unknown Source) at org.apache.catalina.connector.warp.WarpRequestHandler.handle(Unknown Source) at org.apache.catalina.connector.warp.WarpConnection.run(Unknown Source) at java.lang.Thread.run(Thread.java:484) root cause java.lang.SecurityException: Servlet of class
org.apache.catalina.servlets.ManagerServlet is privileged and cannot be loaded
by this web application
at org.apache.catalina.core.StandardWrapper.loadServlet(Unknown Source) at org.apache.catalina.core.StandardWrapper.allocate(Unknown Source) at org.apache.catalina.core.StandardWrapperValve.invoke(Unknown Source) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Unknown Source) at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source) at org.apache.catalina.core.ContainerBase.invoke(Unknown Source) at org.apache.catalina.core.StandardContextValve.invoke(Unknown Source) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Unknown Source) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Unknown Source) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Unknown Source) at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source) at org.apache.catalina.core.ContainerBase.invoke(Unknown Source) at org.apache.catalina.core.StandardContext.invoke(Unknown Source) at org.apache.catalina.core.StandardHostValve.invoke(Unknown Source) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Unknown Source) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(Unknown Source) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Unknown Source) at org.apache.catalina.valves.ErrorReportValve.invoke(Unknown Source) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Unknown Source) at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source) at org.apache.catalina.core.ContainerBase.invoke(Unknown Source) at org.apache.catalina.core.StandardEngineValve.invoke(Unknown Source) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Unknown Source) at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source) at org.apache.catalina.core.ContainerBase.invoke(Unknown Source) at org.apache.catalina.connector.warp.WarpRequestHandler.handle(Unknown Source) at org.apache.catalina.connector.warp.WarpConnection.run(Unknown Source) at java.lang.Thread.run(Thread.java:484) --------------------------------------------------------------------------------
Apache Tomcat
All other non-restricted applications work correctly (jsp and servlets). I did not make particular changes on the original configuration files of Tomcat. At the end of the file httpd.conf I added this
lines:
WebAppConnection
conn
warp
localhost:8008
WebAppDeploy ../server/webapps/manager conn /manager/ WebAppDeploy marcotest conn /marcotest/ WebAppInfo /webapp-info I tried to: - move the manager directory from <TOMCAT_HOME>/server/webapps/manager to <TOMCAT_HOME>/webapps/manager, inserting in httpd.conf aline like this: WebAppDeploy manager conn /manager/ - move the configuration of the context from file <TOMCAT_HOME>/webapps/manager.xml into the <TOMCAT_HOME>/conf/server.xml file (inside the <Host> tag) - all combinations of the two. I also tried to add restrictions to another web
application and that works!! This is the example:
In server.xml: <!-- Tomcat MARCOTEST Context --> <Context path="/marcotest" docBase="marcotest" debug="0" reloadable="true" crossContext="false"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="marcotest." suffix=".log" timestamp="true"/> </Context> In web.xml of marcotest application:
<!-- Define a Security Constraint on this Application --> <security-constraint> <web-resource-collection> <web-resource-name>Entire Application</web-resource-name> <url-pattern>/*</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>Marcotest 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 Marcotest Application </description> <role-name>manager</role-name> </security-role> I am not able to understand! In production I want to activate only the WarpConnector, so I want to use the manager application via Apache. Thank you,
Bye. Marco.
|
- RE: Tomcat4 manager application Marco Bucciarelli
- RE: Tomcat4 manager application okamototk
- Re: Tomcat4 manager application Marco Bucciarelli