I have been working on splitting up our monolithic server configuration
into smaller bits, including making the web containers and builders
into pluggable configurations. This works fine for Jetty but I am
running into problems with Tomcat. AFAICT all the tomcat gbeans start
properly and deployment appears to work, but when I try to access web
applications I either get an NPE in the log or 404 errors in the
browser.
The only startup difference I know of is reflected in my change to
EngineGBean in rev 267422. When separated into a different
configuration, the hosts in the reference collection start after the
engine gbean, so need to be registered with the actual engine when they
start up rather than when the EngineGBean starts up. Can this possibly
be causing the error I see? If so, we need to find a different way of
establishing startup order.
The stack trace I get from the NPE is:
11:00:13,235 ERROR [CoyoteAdapter] An exception or error occurred in
the container during the request processing
java.lang.NullPointerException
at
org.apache.catalina.realm.RealmBase.findSecurityConstraints(RealmBase.ja
va:476)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
Base.java:400)
at
org.apache.geronimo.tomcat.valve.PolicyContextValve.invoke(PolicyContext
Valve.java:47)
at
org.apache.geronimo.tomcat.valve.TransactionContextValve.invoke(Transact
ionContextValve.java:53)
at
org.apache.geronimo.tomcat.valve.ComponentContextValve.invoke(ComponentC
ontextValve.java:47)
at
org.apache.geronimo.tomcat.valve.InstanceContextValve.invoke(InstanceCon
textValve.java:60)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:107)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
526)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
856)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onnection(Http11Protocol.java:744)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.java:527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollow
erWorkerThread.java:80)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:684)
at java.lang.Thread.run(Thread.java:552)
and comes from trying to access localhost:8080/console
Trying localhost:8080 or localhost:8080/console/ or anything else I
can think of gives 404 errors.
Any assistance, hints, clues, or suggestions where to look would be
gratefully appreciated.
thanks
david jencks