# Servlet-Mapping



## krabumski (18. Aug 2011)

Moin, 
ich bin grad am verzweifeln mit Tomcat, ich hoffe mir kann da jemand helfen

also ich hab ein simples Servlet geschrieben, direkt in den classes Ordner unter WEB-INF gepackt
und dort compiliert

meine web.xml:

[XML]
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

   <servlet>
       <servlet-name>Servlet</servlet-name>
       <servlet-class>TestServlet</servlet-class>
   </servlet>
   <servlet-mapping>
       <servlet-name>Servlet</servlet-name>
       <url-pattern>/servlet</url-pattern>
   </servlet-mapping>

</web-app>
[/XML]

aber für die URL:
http://localhost:8080/servlet/servlet

kriege Fehlermeldung 503 (This application is not currently available)


also ich glaub, dass es am mapping liegen muss weil als ich versuchsweise mein Servlet in den example Ordner gepackt habe und der dortigen "web.xml" Datei mein <servlet-mapping> hinzugefügt habe gingen alle Beispiele nicht mehr.

Nach auskommentieren gingen die Beispiele wieder

also ich weiß echt nisch mehr weiter


----------



## Tomate_Salat (18. Aug 2011)

über das url-pattern gibst du an, wo das Servlet zu finden ist. Versuche es mal mit:
http://localhost:8080/servlet/servlet


----------



## krabumski (18. Aug 2011)

ähm ups hatte mich im post mit der URL vertipt


----------



## Tomate_Salat (18. Aug 2011)

Ja, hätte ich auch sehen sollen, sorry. Hab nur auf das Ende der URL geachtet. Versuche es mal mit:
http://localhost:8080/servlet


----------



## krabumski (18. Aug 2011)

ne da tut sich auch nichts
aber danke für die schnellen antworten


----------



## krabumski (18. Aug 2011)

naja ich glaub ich versuch einfach mal ne andere version zu installieren

wenns dann läuft will ich garnicht wissen wo der fehler war


----------



## nillehammer (18. Aug 2011)

> kriege Fehlermeldung 503 (This application is not currently available)


Das sieht danach aus, als hätte der Tomcat den Context (ich nehme mal an ROOT?) nicht starten können. Das passiert, wenn beim Start der Webapp Exceptions fliegen. Die müsste man in der catalina.out sehen. Irgendwas wie:
"...Deploying Context ROOT
und hier dann die Exception"


----------



## krabumski (18. Aug 2011)

hab grad in die logfile gekuckt und da fliegen exception

einmal

java.lang.reflect.InvocationTargetException
.
.
.
Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> null in servlet mapping

und

java.lang.IllegalArgumentException: Invalid <url-pattern> null in servlet mapping
.
.
.
Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> null in servlet mapping



wenn damit so jemand was anfangen kann 
ich werd mal sehen was ich über die Exception finden kann


----------



## nillehammer (18. Aug 2011)

Da hast Du leider etwas viel weg gelassen. Ich glaube,dass die InvocationTargetException nichts mit der IllegalArgumentException zu tun hat(anders, als die Punkte in Deinem Post suggerieren).

Aber die IllegalArgumentException sieht nach einer Exception aus, die der XML-Parser beim Parsen Deiner web.xml schmeißt.. Durchsuche den Stacktrace mal nach sowas hier:
_SEVERE: Occurred at line XX column YY_
Dann siehst Du genau, wo der Fehler in der web.xml ist.


----------



## brauner1990 (29. Aug 2011)

Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> null in servlet mapping

und

java.lang.IllegalArgumentException: Invalid <url-pattern> null in servlet mapping
.
.
.
Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> null in servlet mapping
[/QUOTE]

also da steht finde ich der Fehler ... du hast iwo ein URLPattern vergessen bzw. nicht richtig konfiguriert.

[XML]
  <servlet>
        <servlet-name>ServletName</servlet-name>
        <servlet-class>package.classname</servlet-class>
    </servlet>
<servlet-mapping>
        <servlet-name>ServletName</servlet-name>
        <url-pattern>ServletPfad</url-pattern>
    </servlet-mapping>
[/XML]
Also wenn unser Servlet z.B. Start hieße und die Klasse Startklasse dann würde das so aussehen
[XML]
  <servlet>
        <servlet-name>StartServlet</servlet-name>
        <servlet-class>meinPackage.Startklasse</servlet-class>
    </servlet>
<servlet-mapping>
        <servlet-name>StartServlet</servlet-name>
        <url-pattern>/start</url-pattern>
    </servlet-mapping>
[/XML]


----------

