Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[Tomcat] Fehler

3 views
Skip to first unread message

Oliver Neumann

unread,
Jun 4, 2002, 10:55:58 AM6/4/02
to
Hallo...

ich befasse mich gerade ein wenig mit Tomcat. Habe alles soweit installier
und die examples gehen auch. Nun hab ich ein java file mit der dazugehörigen
class in ein neues Verzeichniss gepackt:
<Tomcat Homedir>\webapps\dateservlet\Web_INF\classes

Muss man dann noch was machen ? Zb das Servlet in eine Webseite integrieren
(weil die examples ja alle in html format sind) ? Weil der findet das nicht.
Dachte Tomcat macht das alles automatisch und es reicht die class files zu
speichern.

type Status report
message /dateservlet/servlet/DateAndTimeServlet

description The requested resource (/dateservlet/servlet/DateAndTimeServlet)
is not available.


Ideen was ich falsch mache ?


dank euch,
oliver


Ingo R. Homann

unread,
Jun 4, 2002, 11:10:32 AM6/4/02
to
Oliver Neumann wrote:
>
> <Tomcat Homedir>\webapps\dateservlet\Web_INF\classes

Hi Oliver!

Ist "Web_INF" nur ein Tippfehler? Hast Du die "config/server.xml"
geupdated?

Ciao,
Ingo

Ingo R. Homann

unread,
Jun 4, 2002, 11:11:25 AM6/4/02
to
"Ingo R. Homann" wrote:
>
> Oliver Neumann wrote:
> >
> > <Tomcat Homedir>\webapps\dateservlet\Web_INF\classes
>
> Hi Oliver!
>
> Ist "Web_INF" nur ein Tippfehler? Hast Du die "config/server.xml"
^^^^^^
Soll natürlich heissen "$TOMCAT/conf/server.xml"


> Ciao,
> Ingo

Stefan Matthias Aust

unread,
Jun 4, 2002, 12:34:41 PM6/4/02
to
Ingo R. Homann wrote:
> Oliver Neumann wrote:
>
>><Tomcat Homedir>\webapps\dateservlet\Web_INF\classes

> Hi Oliver!
>
> Ist "Web_INF" nur ein Tippfehler?

Genau. Das Verzeichnis muss WEB-INF (alles GROSS und Minus statt
Unterstrich) heißen.

> Hast Du die "config/server.xml"
> geupdated?

Server neustarten sollte eigentlich reichen, wenn man eine passende
web.xml-Datei im WEB-INF-Verzeichnis erstellt. Ich schlage vor, diese
vom examples-Ordner abzugucken.

bye
--
Stefan Matthias Aust //
www.3plus4software.de // Where do we go from here?

Oliver Neumann

unread,
Jun 4, 2002, 1:06:33 PM6/4/02
to

"Ingo R. Homann" <ingo....@uni-bielefeld.de> schrieb im Newsbeitrag
news:3CFCD868...@uni-bielefeld.de...


Ohja...web_inf war ein Schreibfehler. Kam dadurch, daß ich einer Anleitung
gefolgt bin, wo der auch drauf ist. Hab ich nun abgeändert. Was muss ich
denn nun in der XML datei ändern ?
Ich hab nur eine class datei, die ausgeführt werden soll. Die beispiel-XML
iss ja recht gross.


oliver


Georg Stahl

unread,
Jun 4, 2002, 1:20:21 PM6/4/02
to
Oliver Neumann wrote:

> Ohja...web_inf war ein Schreibfehler. Kam dadurch, daß ich einer Anleitung
> gefolgt bin, wo der auch drauf ist. Hab ich nun abgeändert. Was muss ich
> denn nun in der XML datei ändern ?
> Ich hab nur eine class datei, die ausgeführt werden soll. Die beispiel-XML
> iss ja recht gross.
>
>
> oliver
in deiner web.xml reicht:
_______________________________

?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">

<web-app>
</web-app>

____________________________
in der server.xml


<Context path="/dataservlet" docBase="dataservlet" debug="0"
reloadable="true" >
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_dataservlet_log." suffix=".txt"
timestamp="true"/>
</Context>


hinzufügen sollte reichen

Georg

Oliver Neumann

unread,
Jun 4, 2002, 1:36:24 PM6/4/02
to
Hmm...geht immer noch nicht.

Also hier mal ganz genau das wie es hier ist:
- web.xml ist erstellt mit den Sachen die Georg gepostet hat
- server.xml wurde ergänzt um Context-Tag, auch von Georg


Dateien:
<Tomcat Homedir>\dateservlet\servlet\DateAndTimeServlet.class
<Tomcat Homedir>\dateservlet\servlet\DateAndTimeServlet.java
<Tomcat Homedir>\dateservlet\web-inf\web.xml
<Tomcat Homedir>\dateservlet\web-inf\classes\DateAndTimeServlet.class
<Tomcat Homedir>\dateservlet\web-inf\classes\DateAndTimeServlet.java


aufrufen tue ich das, laut unserer Anleitung hier, im IE mit :
http://localhost:8080/dateservlet/servlet/DateAndTimeServlet


Der Fehler ist immernoch der selbe. Allerdings kommt schonmal bei
http://localhost:8080/dateservlet eine Verzeichnissstruktur, also \servlet
als Link. Wenn ich dem folge, kommt allerdings wieder der Fehler, daß er die
Ressource nicht findet.


Wieder was falsch?

grüße,
oliver


Georg Stahl

unread,
Jun 4, 2002, 2:18:52 PM6/4/02
to
Oliver Neumann wrote:

> Hmm...geht immer noch nicht.
>
> Also hier mal ganz genau das wie es hier ist:
> - web.xml ist erstellt mit den Sachen die Georg gepostet hat
> - server.xml wurde ergänzt um Context-Tag, auch von Georg
>
>
> Dateien:
> <Tomcat Homedir>\dateservlet\servlet\DateAndTimeServlet.class
> <Tomcat Homedir>\dateservlet\servlet\DateAndTimeServlet.java
> <Tomcat Homedir>\dateservlet\web-inf\web.xml
> <Tomcat Homedir>\dateservlet\web-inf\classes\DateAndTimeServlet.class
> <Tomcat Homedir>\dateservlet\web-inf\classes\DateAndTimeServlet.java
>

Versuch mal web-inf in WEB-INF umzubenennen.

Georg

Oliver Neumann

unread,
Jun 4, 2002, 2:25:51 PM6/4/02
to
> Versuch mal web-inf in WEB-INF umzubenennen.
>
> Georg


bringt nix :(


Heiner Kücker

unread,
Jun 4, 2002, 4:05:56 PM6/4/02
to
du musst dein servlet in der web.xml registrieren

<servlet>
<servlet-name> olivertest</servlet-name>
<servlet-class> package.OliverTestServlet </servlet-class>
</init-param>


http://www.heinerkuecker.de/JSP-Schulung/JSP_Schulung0101.html

viel glück

heiner

Georg Stahl

unread,
Jun 4, 2002, 3:22:45 PM6/4/02
to
Oliver Neumann wrote:

Kannst du mal die genaue Fehlermeldung posten? Tomcat findet eine Ressource
nicht reicht wohl doch nicht.

Georg

Georg Stahl

unread,
Jun 4, 2002, 3:43:20 PM6/4/02
to
Heiner Kücker wrote:

Bei mir gehts auch ohne eintrag in der web.xml. (Tomcat4.0.2-LE, j2sdk1.4,
Linux (Kernel 2.4.18)).

Georg

Oliver Neumann

unread,
Jun 4, 2002, 4:07:55 PM6/4/02
to
> Kannst du mal die genaue Fehlermeldung posten? Tomcat findet eine
Ressource
> nicht reicht wohl doch nicht.
>
> Georg

Apache Tomcat/4.0.3 - HTTP Status 404 - /dateservlet/servlet/

----------------------------------------------------------------------------
----

type Status report

message /dateservlet/servlet/

description The requested resource (/dateservlet/servlet/) is not available.

Georg Stahl

unread,
Jun 4, 2002, 4:29:59 PM6/4/02
to
Oliver Neumann wrote:

Was passiert, wenn du das folgende compilierst und in dein .../classes
Verzeichnis kopierst (probiers mit dateservlet und ROOT) dann Tomcat neu
starten und im Browser: http://127.0.0.1:8080/dateservlet/servlet/Test bzw.
http://127.0.0.1:8080/servlet/Test eingibst)

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class Test extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletRes
ponse response)throws IOException, ServletException{
PrintWriter out=response.getWriter();
response.setContentType("text/plain");
out.println("Test");
}
}


ansonsten bin ich mit meinem Latein langsam am Ende (und seh erst morgen
wieder rein).

Gute Nacht

Georg

Oliver Neumann

unread,
Jun 4, 2002, 5:55:47 PM6/4/02
to

"Georg Stahl" <georg...@nexgo.de> schrieb im Newsbeitrag
news:adj85c$31l$1...@newsread1.arcor-online.net...


hey super..geht beides. Nur warum geht meins nicht ?


oliver


Georg Stahl

unread,
Jun 5, 2002, 3:31:22 AM6/5/02
to
Oliver Neumann wrote:

>> >
>> > Apache Tomcat/4.0.3 - HTTP Status 404 - /dateservlet/servlet/
>> >
>> >

>> > type Status report
>> >
>> > message /dateservlet/servlet/
>> >
>> > description The requested resource (/dateservlet/servlet/) is not
>> > available.
>>
>> Was passiert, wenn du das folgende compilierst und in dein .../classes
>> Verzeichnis kopierst (probiers mit dateservlet und ROOT) dann Tomcat neu
>> starten und im Browser: http://127.0.0.1:8080/dateservlet/servlet/Test
> bzw.
>> http://127.0.0.1:8080/servlet/Test eingibst)
>>

[...]


>
>
> hey super..geht beides. Nur warum geht meins nicht ?
>
>
> oliver

Blöde Frage: Hattest du nach der Änderung der server.xml Tomcat neu
gestartet?
Wenn nein ist alles klar und deins müsste jetzt auch gehen (oder eine andere
Fehlermeldung werfen).

Georg

Raphael Posmyk

unread,
Jun 5, 2002, 3:40:08 AM6/5/02
to
Oliver Neumann wrote:

> <Tomcat Homedir>\dateservlet\web-inf\web.xml
> <Tomcat Homedir>\dateservlet\web-inf\classes\DateAndTimeServlet.class
> <Tomcat Homedir>\dateservlet\web-inf\classes\DateAndTimeServlet.java

Soll es nicht heisen:

<Tomcat Homedir>\webapps\dateservlet\web-inf\classes\...
^^^^^^^^^

Ciao, Raphael

Oliver Neumann

unread,
Jun 5, 2002, 3:37:06 AM6/5/02
to
> Blöde Frage: Hattest du nach der Änderung der server.xml Tomcat neu
> gestartet?
> Wenn nein ist alles klar und deins müsste jetzt auch gehen (oder eine
andere
> Fehlermeldung werfen).
>
> Georg

ja stimmt...hier mal der fehler:


Apache Tomcat/4.0.3 - HTTP Status 500 - Internal Server Error

----------------------------------------------------------------------------
----

type Exception report

message Internal Server Error

description The server encountered an internal error (Internal Server Error)
that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Cannot allocate servlet instance for path
/dateservlet/servlet/DateAndTimeServlet
at
org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java
:415)
at
org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:180)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:243)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:190)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170
)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:
1012)
at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107
)
at java.lang.Thread.run(Thread.java:484)


root cause

java.lang.NoClassDefFoundError: DateAndTimeServlet (wrong name:
datetime/DateAndTimeServlet)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111)
at
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLo
ader.java:1631)
at
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.jav
a:926)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav
a:1360)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav
a:1243)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:86
5)
at
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:653)
at
org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java
:396)
at
org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:180)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:243)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:190)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170
)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
72)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:
1012)
at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107
)
at java.lang.Thread.run(Thread.java:484)

----------------------------------------------------------------------------
----

Ingo R. Homann

unread,
Jun 5, 2002, 3:45:22 AM6/5/02
to
Oliver Neumann wrote:
>
> javax.servlet.ServletException: Cannot allocate servlet instance for path
> /dateservlet/servlet/DateAndTimeServlet
> ...

> java.lang.NoClassDefFoundError: DateAndTimeServlet (wrong name:
> datetime/DateAndTimeServlet)

Aha, jetzt kommen wir der Sache näher! Hast Du das Servlet in einem
Package compiliert? Wenn es als servlet geladen werden soll, muß es ja
offensichtlich im default-package (also keine "package"-clause am Anfang
haben) liegen!

Ciao,
Ingo

Uwe Plonus

unread,
Jun 5, 2002, 3:53:56 AM6/5/02
to
Oliver Neumann wrote:

>>Blöde Frage: Hattest du nach der Änderung der server.xml Tomcat neu
>>gestartet?
>>Wenn nein ist alles klar und deins müsste jetzt auch gehen (oder eine
>>
> andere
>
>>Fehlermeldung werfen).
>>
>>Georg
>>
>
> ja stimmt...hier mal der fehler:
>
>
> Apache Tomcat/4.0.3 - HTTP Status 500 - Internal Server Error
>

> [Viel StackTrace]


>
> root cause
>
> java.lang.NoClassDefFoundError: DateAndTimeServlet (wrong name:
> datetime/DateAndTimeServlet)
>

> [Noch mehr StackTrace]
>

Hier ist die interessante Zeile:

Du hast Deine Klasse DateAndTimeServlet im package datetime definiert,
jedoch auf dem Webserver diese Klasse ins default package gelegt. Wenn
Du Deine Klasse in ein Unterverzeichnis mit dem Packagenamen packst,
dann sollte es funktionieren.

Uwe

Oliver Neumann

unread,
Jun 5, 2002, 4:10:57 AM6/5/02
to
Na endlich..es läuft....


Dank euch vielmals...jaja scheiss newbies immer ;)


grüße,
oliver


0 new messages