You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by BugRat Mail System <to...@cortexity.com> on 2000/09/01 09:57:34 UTC
BugRat Report #58 has been filed.
Bug report #58 has just been filed.
You can view the report at the following URL:
<http://znutar.cortexity.com:8888/BugRatViewer/ShowReport/58>
REPORT #58 Details.
Project: Tomcat
Category: Bug Report
SubCategory: New Bug Report
Class: swbug
State: received
Priority: high
Severity: non-critical
Confidence: public
Environment:
Release: 3.1
JVM Release: IBM JDK 1.3
Operating System: Linux (Mandrake)
OS Release: 7.1 (kernel 2.2.15)
Platform: x86 (Athlon)
Synopsis:
multiple instances of tomcat running on different ports erroniously over write each others JSP metafiles by both using the work/localhost_8080/ forlder rather than naming the folder of the port they are actually using
Description:
I am running two instances of tomcat so that I can
can have two people on the same machine develop a java
project. Here are my server.xml files.
----------------------------------------------------------
adam.xml
----------------------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<Server>
<!-- Debug low-level events in XmlMapper startup -->
<xmlmapper:debug level="0" />
<Logger name="tc_log"
path="logs/tomcat.log"
customOutput="yes" />
<Logger name="servlet_log"
path="logs/servlet.log"
customOutput="yes" />
<Logger name="JASPER_LOG"
path="logs/jasper.log"
verbosityLevel = "INFORMATION" />
<ContextManager debug="0" workDir="work" >
<!-- ContextInterceptor className="org.apache.tomcat.context.LogEvents" / -->
<ContextInterceptor className="org.apache.tomcat.context.AutoSetup" />
<ContextInterceptor className="org.apache.tomcat.context.DefaultCMSetter" />
<ContextInterceptor className="org.apache.tomcat.context.WorkDirInterceptor" />
<ContextInterceptor className="org.apache.tomcat.context.WebXmlReader" />
<ContextInterceptor className="org.apache.tomcat.context.LoadOnStartupInterceptor" />
<!-- Request processing -->
<RequestInterceptor className="org.apache.tomcat.request.SimpleMapper" debug="0" />
<RequestInterceptor className="org.apache.tomcat.request.SessionInterceptor" />
<RequestInterceptor className="org.apache.tomcat.request.SecurityCheck" />
<RequestInterceptor className="org.apache.tomcat.request.FixHeaders" />
<Connector className="org.apache.tomcat.service.SimpleTcpConnector">
<Parameter name="handler" value="org.apache.tomcat.service.http.HttpConnectionHandler"/>
<Parameter name="port" value="8082"/>
</Connector>
<Connector className="org.apache.tomcat.service.SimpleTcpConnector">
<Parameter name="handler" value="org.apache.tomcat.service.connector.Ajp12ConnectionHandler"/>
<Parameter name="port" value="8009"/>
</Connector>
<Context path="" docBase="/home/adam/tc/server/html" debug="0" reloadable="true" >
</Context>
</ContextManager>
</Server>
------------------------------------------------------------
work.xml
------------------------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<Server>
<!-- Debug low-level events in XmlMapper startup -->
<xmlmapper:debug level="0" />
<Logger name="tc_log"
path="logs/tomcat.log"
customOutput="yes" />
<Logger name="servlet_log"
path="logs/servlet.log"
customOutput="yes" />
<Logger name="JASPER_LOG"
path="logs/jasper.log"
verbosityLevel = "INFORMATION" />
<ContextManager debug="0" workDir="work" >
<!-- ContextInterceptor className="org.apache.tomcat.context.LogEvents" / -->
<ContextInterceptor className="org.apache.tomcat.context.AutoSetup" />
<ContextInterceptor className="org.apache.tomcat.context.DefaultCMSetter" />
<ContextInterceptor className="org.apache.tomcat.context.WorkDirInterceptor" />
<ContextInterceptor className="org.apache.tomcat.context.WebXmlReader" />
<ContextInterceptor className="org.apache.tomcat.context.LoadOnStartupInterceptor" />
<!-- Request processing -->
<RequestInterceptor className="org.apache.tomcat.request.SimpleMapper" debug="0" />
<RequestInterceptor className="org.apache.tomcat.request.SessionInterceptor" />
<RequestInterceptor className="org.apache.tomcat.request.SecurityCheck" />
<RequestInterceptor className="org.apache.tomcat.request.FixHeaders" />
<Connector className="org.apache.tomcat.service.SimpleTcpConnector">
<Parameter name="handler" value="org.apache.tomcat.service.http.HttpConnectionHandler"/>
<Parameter name="port" value="8081"/>
</Connector>
<Connector className="org.apache.tomcat.service.SimpleTcpConnector">
<Parameter name="handler" value="org.apache.tomcat.service.connector.Ajp12ConnectionHandler"/>
<Parameter name="port" value="8008"/>
</Connector>
<!-- example - how to override AutoSetup actions -->
<Context path="" docBase="/home/work/tc/server/html" debug="0" reloadable="true" >
</Context>
</ContextManager>
</Server>
------------------------------------------------------------
as you can see the only difference is the docBase
and the port they listen on. Now I then browse to
http://localhost:8081/index.jsp and http://localhost:8082/index.jsp
and get the same page even tho the .jsp's are different.
If it do a `find .` in the work directory this is what I
see.
[root@angband work]# find .
.
./localhost_8080%2Fexamples
./localhost_8080%2Ftest
./localhost_8080%2Fadmin
./localhost_8080
./localhost_8080/_0002findex_0002ejspindex_jsp_0.java
./localhost_8080/_0002findex_0002ejspindex.class
As you can see, only one java file has been
produced not two, it happens to be the one
corosponding to the first page I checked. Also note
that the port is 8080, the default. Had the real
ports been used "8081" and "8082" there would
not be a collision and this would have worked.
I am no tomcat kung fu master but this looks really
fishy to me.
Lastly I deletee the work directory and got this
message on both browsers.
Error: 404
Location: /index.jsp
JSP file "/usr/local/jakarta/build/tomcat/work/localhost_8080/_0002findex_0002ejspindex_jsp_0.java (No such file or directory)" not found
Confirming that they are both indeed looking for the same file.
Grepping the code for 8080s was to no avail,
I need to leave this to someone who knows the code base.
Thanks a lot.