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
Ist "Web_INF" nur ein Tippfehler? Hast Du die "config/server.xml"
geupdated?
Ciao,
Ingo
> Ciao,
> Ingo
> 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?
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
?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
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
> 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
bringt nix :(
<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
Kannst du mal die genaue Fehlermeldung posten? Tomcat findet eine Ressource
nicht reicht wohl doch nicht.
Georg
Bei mir gehts auch ohne eintrag in der web.xml. (Tomcat4.0.2-LE, j2sdk1.4,
Linux (Kernel 2.4.18)).
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.
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
hey super..geht beides. Nur warum geht meins nicht ?
oliver
>> >
>> > 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
> <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
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)
----------------------------------------------------------------------------
----
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
>>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
Dank euch vielmals...jaja scheiss newbies immer ;)
grüße,
oliver