Hi all:

Tomcat 3.3 (on linux) seems to be quite shoddily
developed. Surprising that, given it's high
visibility and posture.

Consider for instance:

I downloaded the binary distro of tomcat 3.3.
I have set and exported both TOMCAT_HOME and
JAVA_HOME. Compiled and installed mod_jk.so
too. (against Apache 1.3.22). 

All I have to do is edit/configure the 
"conf/server.xml" file and I should be well 
on my way right ?

Well let' see.

shell> vi server.xml
shell> tomcat.sh start -jkconf

EmbededTomcat: exception initializing ContextManager
java.lang.NullPointerException at
org.apache.tomcat.facade.JspInterceptor.addContext(Unknown
Source)

[..bunch of stack trace crap here ..]

Hmm. The message above gives me *no* more information.


Nothing looks obviously wrong with the server.xml 
file, let's validate it using the W3C validator.
But wait, there is *NO* server.dtd. There is only a 
description in the manual which says:

----------- quote ----------
This is the main element in server.xml. It has a
single child describing the tomcat configuration,
ContextManager.

Examples
<Server>
   <ContextManager > 
      ... ( tomcat configuration )
   </ContextManager>
</server>
ContextManager
------------- end quote ----------

Hmm. Well my file kinda looks ok, but not having a 
DTD kinda means that the tomcat developers don't
understand the central concept behind xml. But's
let's leave that aside for now. Let's just validate
the *syntax* of server.xml using W3C (if the 
structure indeed is as simple as the manual claims).

[fire up a browser, validate server.xml here]

Well, that validated fine. So why am I getting
the error and wh am I getting it?  There is no 
way to tell, either from the Exception, or 
the LACK OF DOCUMENTATION.

2 hours later, after random permutations and
combinations of server.xml I still haven't found 
what's wrong. 

Attached below is the complete server.xml, 
in case any of you are interested. 

In the past, I may have gotten upset at having wasted
all this time. But that was before I found enlightment
through tomcat. Now I am at peace with the world for
tomcat teaches us about the futility of trying to
solve simple problems. 

Of course, now that I have given up trying to make
this thing work, I do have some idle time to wonder:

Exactly what are the tomcat developers smoking ?

Best regards,

[EMAIL PROTECTED]

------------ server.xml follows ----------
<Server>
<ContextManager workDir="work" >

 <ContextXmlReader config="conf/apps.xml" />
 <ApacheConfig  noRoot="true" forwardAll="false" 
                jkDebug="info" jkWorker="ajp13" /> 
 <AccessInterceptor />
 <AccessLogInterceptor />  
 
 <Http10Connector  port="8080" secure="false" />
 <Ajp12Connector   port="8007" address="127.0.0.1"
backlog="250" />
 <Ajp13Connector port="8009" address="127.0.0.1"
backlog="250" />
 
 <AutoDeploy source="modules" target="modules"
redeploy="true" />
 <AutoWebApp dir="modules" host="DEFAULT"
trusted="true"/>
 <AutoDeploy source="webapps" target="webapps" />
 <AutoWebApp dir="webapps" host="DEFAULT" />
 
 <DecodeInterceptor /> 
 <ErrorHandler showDebugInfo="true" />
 <InvokerInterceptor /> 
 <Jdk12Interceptor /> 
 <JspInterceptor keepGenerated="true"
useJspServlet="false" />
 <LoaderInterceptor11  useApplicationLoader="true" />
 <LoadOnStartupInterceptor />
 
 <LogSetter     name="tomcatlog" timestamps="true" 
        verbosityLevel="INFORMATION"   
        path="logs/tomcat-log" />
 
 <PolicyLoader 
        securityManagerClass="java.lang.SecurityManager"
        policyFile="conf/tomcat.policy" />
 <ReloadInterceptor fullReload="true" />
 <Servlet22Interceptor />
 <SessionExpirer checkInterval="120" />
 <SessionId cookiesFirst="true" noCookies="false" />
 <SessionIdGenerator
        randomClass="java.security.SecureRandom" 
        randomFile="/dev/urandom" />
 <SimpleMapper1 />
 <SimpleSessionStore maxActiveSessions="-1" />        
       
 <StaticInterceptor listings="false" />
 <TrustedLoader />
 <WebXmlReader validate="true" />     
 <WorkDirSetup cleanWorkDir="false" />   
 <LogSetter name="servlet_log" 
        timestamps="true"
        verbosityLevel = "INFORMATION"
        path="logs/servlet-${yyyyMMdd}.log" />
 <LogSetter  name="JASPER_LOG"
        timestamps="true" 
        path="logs/jasper-${yyyyMMdd}.log" 
        verbosityLevel = "INFORMATION"  />

</ContextManager>
</Server>
--------------------- end ----------------------------


__________________________________________________
Do You Yahoo!?
Buy the perfect holiday gifts at Yahoo! Shopping.
http://shopping.yahoo.com

--
To unsubscribe:   <mailto:[EMAIL PROTECTED]>
For additional commands: <mailto:[EMAIL PROTECTED]>
Troubles with the list: <mailto:[EMAIL PROTECTED]>

Reply via email to