ich trage folgendes in die server.xml ein, starte dann tomcat und erhalte diese
Fehlermeldung.
org.xml.sax.SAXParseException: Element type "web-app" must be declared.
server.xml
...
<Context path="/pizza"
docBase="I:/hagmann/java/projekte/Pizza/Teil1/develop/sources/jspTutorial-app"
debug="0" reloadable="true">
</Context>
Ändere ich nun die docBase ab, dann kommt der Fehler nicht mehr, der
Pizzaservice läuft aber trotzdem nicht!
docBase="I:/hagmann/java/projekte/Pizza/Teil1/develop/sources/jsp"
Beim Aufruf: http:/7127.0.0.1:8080/pizza/jspTutorial kommt die Fehlermeldung,
dass er das Verzeichnis jspTutorial nicht findet!
Es liegt der Verdacht nahe, dass man keine beliebig langen Verzeichnisnamen
vergeben kann oder die Pfade zu lang sind!
Was bedeutet denn die Fehlermeldung? Ich habe bei dem kürzeren Pfad ja auch
nichts extra deklariert!
TIA, Sandra
--
__________________________________________________________
News suchen, lesen, schreiben mit http://newsgroups.web.de
> ich trage folgendes in die server.xml ein, starte dann tomcat und erhalte diese
> Fehlermeldung.
>
> org.xml.sax.SAXParseException: Element type "web-app" must be declared.
Ich rate mal, dass du vielleicht an
I:/..../jspTutorial-app/WEB-INF/
keine web.xml-Datei stehen hast oder wenigstens keine, die mit dem tag
<web-app> beginnt...
> server.xml
Daran liegt es nicht.
> Ändere ich nun die docBase ab, dann kommt der Fehler nicht mehr, der
> Pizzaservice läuft aber trotzdem nicht!
Was sagen denn die Logs in CATALINA_HOME/logs? Dort sollte Tomcat dir
eigentlich melden, was sache ist.
> Es liegt der Verdacht nahe, dass man keine beliebig langen Verzeichnisnamen
> vergeben kann oder die Pfade zu lang sind!
Windows kann bis 256, maximal 10 Verzeichnisebenen oder so, Linux
üblicherweise mindestens 1024 Zeichen pro Pfad, oft maximal 32 oder 256
Zeichen pro dirname. Daran wird es also nicht liegen.
bye
--
Stefan Matthias Aust
www.3plus4software.de // Inter Deum Et Diabolum Semper Musica Est
Sandra Hagmann wrote:
> Beim Aufruf: http:/7127.0.0.1:8080/pizza/jspTutorial kommt die Fehlermeldung,
^
> dass er das Verzeichnis jspTutorial nicht findet!
Vielleicht hast du dich auch nur vertippt. Wie wär's mit
http:/127.0.0.1:8080/pizza/jspTutorial
oder
http:/localhost:8080/pizza/jspTutorial
(wenn dein Rechner eine feste IP hat)
--
Die E-Mail-Adresse ist gültig!
Ich habe mich nur hier in der Mail vertippt! Im Browser habe ich es korrekt
angegeben!
---> doch, die habe ich!
web.xml
<web-app>
<display-name>iX Pizza Online Serivce Part I</display-name>
<description>
The Pizza Online service show a simple jsp example
</description>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<mime-mapping>
<extension>
txt
</extension>
<mime-type>
text/plain
</mime-type>
</mime-mapping>
<mime-mapping>
<extension>
html
</extension>
<mime-type>
text/html
</mime-type>
</mime-mapping>
<welcome-file-list>
<welcome-file>
index.jsp
</welcome-file>
<welcome-file>
index.html
</welcome-file>
</welcome-file-list>
</web-app>
>> server.xml
>
>Daran liegt es nicht.
---> muß es aber, denn wenn ich den Pfad von
docBase="I:/hagmann/java/projekte/pizza1" auf
docBase="I:/hagmann/java/projekte/pizza1/xxx" ändere,
dann kommt die Fehlermeldung nicht mehr! Es ist mir ein Rätsel, denn xxx
existiert überhaupt nicht! Nehme ich statt xxx jedoch ein existierendes
Unterverzeichnis, dann kommt wieder der Fehler!
>Was sagen denn die Logs in CATALINA_HOME/logs? Dort sollte Tomcat dir
eigentlich melden, was sache ist.
Das sagt "localhost_log.2002-07-16.txt"
2002-07-16 11:41:49 WebappLoader[/pizza2]: Deploying class repositories to work
directory E:\tomcat\tomcat\work\localhost\pizza2
2002-07-16 11:41:49 WebappLoader[/pizza2]: Deploy JAR /WEB-INF/lib/idb.jar to
E:\Pizzaservice\Teil2\develop\sources\jspTutorial-app\WEB-INF\lib\idb.jar
2002-07-16 11:41:49 WebappLoader[/pizza2]: Deploy JAR /WEB-INF/lib/idbf.jar to
E:\Pizzaservice\Teil2\develop\sources\jspTutorial-app\WEB-INF\lib\idbf.jar
2002-07-16 11:41:49 WebappLoader[/pizza2]: Deploy JAR /WEB-INF/lib/jspTutorial.
jar to E:\Pizzaservice\Teil2\develop\sources\jspTutorial-app\WEB-
INF\lib\jspTutorial.jar
2002-07-16 11:41:49 WebappLoader[/pizza2]: Reloading checks are enabled for this
Context
2002-07-16 11:41:49 StandardManager[/pizza2]: Seeding random number generator
class java.security.SecureRandom
2002-07-16 11:41:49 StandardManager[/pizza2]: Seeding of random number generator
has been completed
2002-07-16 11:41:49 ContextConfig[/pizza2] Parse error in application web.xml
org.xml.sax.SAXParseException: Element type "web-app" must be declared.
at org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1213)
at org.apache.xerces.validators.common.XMLValidator.
reportRecoverableXMLError(XMLValidator.java:1807)
at org.apache.xerces.validators.common.XMLValidator.
validateElementAndAttributes(XMLValidator.java:3633)
at org.apache.xerces.validators.common.XMLValidator.
callStartElement(XMLValidator.java:1229)
at org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.
dispatch(XMLDocumentScanner.java:938)
at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.
java:381)
at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1098)
at org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:223)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:362)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:137)
at org.apache.catalina.util.xml.XmlMapper.readXml(XmlMapper.java:275)
at org.apache.catalina.startup.ContextConfig.applicationConfig(ContextConfig.
java:256)
at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:824)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.
java:224)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.
java:155)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1131)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3345)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:614)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:343)
at org.apache.catalina.core.StandardService.start(StandardService.java:388)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:506)
at org.apache.catalina.startup.Catalina.start(Catalina.java:781)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:681)
at org.apache.catalina.startup.Catalina.process(Catalina.java:179)
at java.lang.reflect.Method.invoke(Native Method)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:243)
2002-07-16 11:41:49 ContextConfig[/pizza2]: Occurred at line 1 column 10
2002-07-16 11:41:49 ContextConfig[/pizza2]: Marking this application unavailable
due to previous error(s)
2002-07-16 11:41:49 StandardContext[/pizza2]: Error initializing naming context
for context /pizza2
2002-07-16 11:41:49 StandardContext[/pizza2]: Context startup failed due to
previous errors
2002-07-16 11:41:49 StandardContext[/pizza2]: Error initializing naming context
for context /pizza2
2002-07-16 11:41:49 WebappLoader[/testservlet1]: Deploying class repositories to
work directory E:\tomcat\tomcat\work\localhost\testservlet1
2002-07-16 11:41:49 WebappLoader[/testservlet1]: Reloading checks are enabled for
this Context
2002-07-16 11:41:49 StandardManager[/testservlet1]: Seeding random number
generator class java.security.SecureRandom
2002-07-16 11:41:49 StandardManager[/testservlet1]: Seeding of random number
generator has been completed
2002-07-16 11:41:49 StandardWrapper[/testservlet1:default]: Loading container
servlet default
2002-07-16 11:41:49 default: init
2002-07-16 11:41:49 StandardWrapper[/testservlet1:invoker]: Loading container
servlet invoker
2002-07-16 11:41:49 invoker: init
2002-07-16 11:41:49 jsp: init
Oh, je, ist das unübersichtlich! Ich hoffe, dieser Error-log sagt Dir etwas!
Danke, Sandra
Das Format dieser Datei ist falsch (auch wenn es tatsächlich so im
Quelltext der iX 7/2000 veröffentlicht wurde - gerade im iX-Archiv
nachgeguckt). Die Datei muss mit
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
beginnen.
Ohne diese Informationen weiss nämlich der Validator für die XML-Datei
nicht, wogegen er validieren soll:
> org.xml.sax.SAXParseException: Element type "web-app" must be declared.
> at org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1213)
> at org.apache.xerces.validators.common.XMLValidator.
> reportRecoverableXMLError(XMLValidator.java:1807)
> at org.apache.xerces.validators.common.XMLValidator.
> validateElementAndAttributes(XMLValidator.java:3633)
> at org.apache.xerces.validators.common.XMLValidator.
> callStartElement(XMLValidator.java:1229)
und Tomcat versteht die Datei dann nicht. Mag sein, dass das vor einem
Jahr in der damals gültigen Tomcat-Version 3.x noch nicht erforderlich war.
Ergaenzend zu Stefans Posting: Du findest in
$TOMCATHOME/webapps/tomcat-docs/appdev/web.xml.txt ein Beispiel zur Vorlage.
Tino
>
>Ergaenzend zu Stefans Posting: Du findest in
>$TOMCATHOME/webapps/tomcat-docs/appdev/web.xml.txt ein Beispiel zur Vorlage.
>
> Tino
--
Und es hat auch nicht jemand anderes eine neue Tomcat-Version oder
Java-Version installiert? Die Fehlermeldung im log war IMHO eindeutig.
> Danke für den Tipp! Daran kann es aber nicht liegen! Denn es lief ja schon
> mal und ich habe an der web.xml nichts geändert! Es muß also an der
> server.xml liegen! Oder vielleicht an einem PATH...?
Sofern deine web.xml korrekt ist (also der DOCTYPE muss wirklich drin sein),
entspricht die Verzeichnisstruktur unterhalb deiner docBase der Definition
fuer Wep Applications?
Ich kann mich auch erinnern mal unter Windows ein Problem mit der
Gross-/Kleinschreibung von Verzeichnisnamen erlebt zu haben. Zumindest
frueher (ich nehme mal an das ist noch so) war der Tomcat case-sensitiv,
mit anderen Worten: Hast du sichergestellt, dass WEB-INF auch WEB-INF
heisst und nicht Web-inf?
Tino