Dear all,
I managed to solve the following error by hacking
/usr/local/geonetwork/web/WEB-INF/web.xml:
Apache Tomcat/4.1
24/07/2005 15:17:33 org.apache.commons.digester.Digester error
SEVERE: Parse Error at line 2 column 219: Document root element
"web-app", must match DOCTYPE root "null".
org.xml.sax.SAXParseException: Document root element "web-app", must
match DOCTYPE root "null".
However I'm still getting the errors below. I have also included a copy of my modified /usr/local/geonetwork/web/WEB-INF/web.xml file. The only other change I have made to the installation is to change ownership of the geonetwork files to the tomcat user.
I'm a little confused. I can't find any reference in /usr/local/geonetwork/web/WEB-INF/web.xml or /etc/tomcat4/server.xml to any geonetwork .jar or class. Is there a configuration step that I am missing? Or does Tomcat or the jeeves servlet referenced in web.xml magically know to start geonetwork?
Any help much appreciated.
cheers,
John
================================================
/usr/local/geonetwork/web/WEB-INF/web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>GeoNetwork OpenSource Metadata Tool</display-name>
<description>
A Spatial data metadata portal website that implements the International
Standard for Geographic Metadata (ISO19115) and (very soon!) the OpenGIS
Web Catalog Service standard for distributed database search.
Using the application, you can quickly set up a metadata portal that allows
online maintenance of metadata and data for internal use on an intranet and/or
publication on the internet.
GeoNetwork OpenSource is developed by the Food and Agriculture Organization
of the United Nations (FAO-UN) and the World Food Programme (WFP-UN) in a
joined effort to provide easy access to spatial databases and enhance data
sharing between different parties.
For more information please see http://geonetwork.fao.org/
</description>
<context-param>
<param-name>Webmaster</param-name>
<param-value>webmaster@anonymised.com</param-value>
</context-param>
<servlet>
<servlet-name>mainServlet</servlet-name>
<description>
I have no idea what this servlet does!
</description>
<servlet-class>jeeves.server.sources.http.JeevesServlet</servlet-class>
<init-param>
<param-name>systemLog</param-name>
<param-value>log/geonetwork.log</param-value>
</init-param>
<init-param>
<param-name>moduleLog</param-name>
<param-value>log/modules.log</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mainServlet</servlet-name>
<url-pattern>/srv/*</url-pattern>
</servlet-mapping>
<session-config>
<!-- 3 hours -->
<session-timeout>180</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
================================================
From catalina_2005-07-26.log:
<snip>
26/07/2005 11:48:15 org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8180
Starting service Tomcat-Standalone
Apache Tomcat/4.1
java.lang.NullPointerException
at jeeves.server.JeevesEngine.log(JeevesEngine.java:541)
at jeeves.server.JeevesEngine.init(JeevesEngine.java:122)
at
jeeves.server.sources.http.JeevesServlet.init(JeevesServlet.java:47)
at javax.servlet.GenericServlet.init(GenericServlet.java:258)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:888)
at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:776)
at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3363)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:3586)
at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1141)
at
org.apache.catalina.core.StandardHost.start(StandardHost.java:707)
at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1141)
at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:316)
at
org.apache.catalina.core.StandardService.start(StandardService.java:450)
at
org.apache.catalina.core.StandardServer.start(StandardServer.java:2143)
at org.apache.catalina.startup.Catalina.start(Catalina.java:463)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:350)
at org.apache.catalina.startup.Catalina.process(Catalina.java:129)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:156)
</snip>
=================================================
From localhost_2005-07-26.log:
<snip>
2005-07-26 11:48:17 mainServlet: init
2005-07-26 11:48:17 StandardContext[/geonetwork]: Servlet /geonetwork
threw load() exception
javax.servlet.ServletException: Exception raised
at
jeeves.server.sources.http.JeevesServlet.init(JeevesServlet.java:52)
at javax.servlet.GenericServlet.init(GenericServlet.java:258)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:888)
at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:776)
at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3363)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:3586)
at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1141)
at
org.apache.catalina.core.StandardHost.start(StandardHost.java:707)
at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1141)
at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:316)
at
org.apache.catalina.core.StandardService.start(StandardService.java:450)
at
org.apache.catalina.core.StandardServer.start(StandardServer.java:2143)
at org.apache.catalina.startup.Catalina.start(Catalina.java:463)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:350)
at org.apache.catalina.startup.Catalina.process(Catalina.java:129)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:156)
----- Root Cause -----
java.lang.NullPointerException
at jeeves.server.JeevesEngine.log(JeevesEngine.java:541)
at jeeves.server.JeevesEngine.init(JeevesEngine.java:122)
at
jeeves.server.sources.http.JeevesServlet.init(JeevesServlet.java:47)
at javax.servlet.GenericServlet.init(GenericServlet.java:258)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:888)
at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:776)
at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3363)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:3586)
at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1141)
at
org.apache.catalina.core.StandardHost.start(StandardHost.java:707)
at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1141)
at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:316)
at
org.apache.catalina.core.StandardService.start(StandardService.java:450)
at
org.apache.catalina.core.StandardServer.start(StandardServer.java:2143)
at org.apache.catalina.startup.Catalina.start(Catalina.java:463)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:350)
at org.apache.catalina.startup.Catalina.process(Catalina.java:129)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:156)
2005-07-26 11:48:17 StandardWrapper[/geonetwork:default]: Loading
container servlet default
2005-07-26 11:48:17 default: init
2005-07-26 11:48:17 StandardWrapper[/geonetwork:invoker]: Loading
container servlet invoker
2005-07-26 11:48:17 invoker: init
2005-07-26 11:48:17 jsp: init
</snip>