# Test Servlet funktioniert nicht



## Nico80 (7. Jan 2017)

Hallo liebe Forengemeinde,
ich bin dabei, mich in das Thema Java Servlets einzuarbeiten. Dazu habe ich mir Eclipse Java EE IDE for Web Developers mit einem Tomcat 7 Server eingerichtet.
Nun habe ich mir ein html-Test-Servlet erstellt (youtube: 



) um die korrekte Funktionsweise der Eclipst-Umgebung auszuprobieren. Es soll in das Webformular ein Name eingegeben werden und dieser dann vom Servlet zurückgegeben werden
Leider funktioniert es nicht. Ist in dem Servlet bzw in der Index-Datei ein Fehler oder liegt es an der Konfiguration der Entwicklungsumgebung? (Betriebssystem Windows 8.1)
Wäre schön, wenn jemand eine Idee hätte.
Danke und viele Grüße

Nico


```
package hallowelt;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/halloweltservlet")
public class HalloWeltServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

   
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String a =    request.getParameter("a");
        PrintWriter out = response.getWriter();
        out.println("<html><body>Hallo " + a + "</body></html>");
        out.flush();
    }

}
```


```
<!DOCTYPE html>
<html>
    <head>
        <meta charset="ISO-8859-1">
            <title>"Hallo Welt</title>
    </head>
<body>
    <form action="halloweltservlet" method="get"></form>
        Bitte geben Sie Ihren Namen ein! <input type="text" name="a">
        <input type="submit">

</body>
</html>
```


----------



## thecain (7. Jan 2017)

web.xml hast du?
ansonsten wäre der fehler interessant


----------



## Nico80 (7. Jan 2017)

Ah ja .... web.xml hab ich. Die brauch ich also auch noch aber die könnte nicht richtig sein. Ich weiß aber nicht was falsch ist. Danke für die Antwort.


```
?xml version="1.0" encoding="UTF-8"?>
<web-app>
<display-name>HalloWeltServlet</display-name>
    <welcome-file-list>
        <welkome-file>index.html</welkome-file>
        <welkome-file>index.htm</welkome-file>
        <welkome-file>index.jsp</welkome-file>
        <welkome-file>default.html</welkome-file>
        <welkome-file>default.htm</welkome-file>
        <welkome-file>default.jsp</welkome-file>-file>
    </welcome-file-list>
</web-app>
```
Gruß Nico


----------



## thecain (7. Jan 2017)

Die WebXml ist schon optional, aber deine ist sogar falsch.

Schau mal das wenigstens die Syntax stimmt, ich weiss nicht was tomcat bei einer invaliden web.xml sagt. 
Und wie gesagt, ohne Fehlermeldung ist das stochern im dunkeln.

welcome-file statt welkome-file und alle tags ordentlich schliessen.


----------



## Nico80 (7. Jan 2017)

Ich hab schon mal gesehen, dass ich den welcome-file mit k geschrieben hatte. Kommt zwischen die Tags <display-name> der Projekt-Titel? Sieht jedenfalls so aus. Also dieses ebenfalls korrigiert.
Funktioniert trotzdem nicht ...

```
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<display-name>servletUebung</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>-file>
    </welcome-file-list>
</web-app>
```


----------



## thecain (7. Jan 2017)

der letzte welcome-file tag ist auch nicht ordentlich


----------



## Nico80 (7. Jan 2017)

Tomcat sagt meiner Meinung nach gar nichts dazu ... Webformular wird aufgerufen, aber nichts übermittelt beim Klick auf den Button.
.....
Jan 07, 2017 12:56:00 PM org.apache.catalina.core.AprLifecycleListener init
INFORMATION: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.8.0_111\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre1.8.0_111/bin/server;C:/Program Files/Java/jre1.8.0_111/bin;C:/Program Files/Java/jre1.8.0_111/lib/amd64;C:\oraclexe\app\oracle\product\11.2.0\server\bin;;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\GNU\GnuPG\pub;C:\Program Files (x86)\Skype\Phone\;C:\Program Files\Java\jre1.8.0_74\bin;C:\Program Files\Java\jre1.8.0_60\bin;C:\Program Files\Java\jdk1.8.0_74\bin;C:\Program Files\Java\jdk1.8.0_45\bin;C:\Program Files\Java\jdk1.8.0_20\bin;C:\Program Files\Java\jdk1.7.0_79\bin;E:\downloads\jre1.8.0_92\bin;E:\downloads\jre1.8.0_92\bin;C:\Users\Christine_2\Desktop\workspace\FOPT_Uebungen\bin;C:\Program Files (x86)\BaseX\bin;;C:\Program Files (x86)\Java\jre1.8.0_91\bin\;E:\FH_Trier_lokal\servlet\eclipse;;.

Jan 07, 2017 12:56:00 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNUNG: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:servletUebung' did not find a matching property.
Jan 07, 2017 12:56:01 PM org.apache.coyote.AbstractProtocol init
INFORMATION: Initializing ProtocolHandler ["http-bio-80"]
Jan 07, 2017 12:56:01 PM org.apache.coyote.AbstractProtocol init
INFORMATION: Initializing ProtocolHandler ["ajp-bio-8009"]
Jan 07, 2017 12:56:01 PM org.apache.catalina.startup.Catalina load
INFORMATION: Initialization processed in 470 ms
Jan 07, 2017 12:56:01 PM org.apache.catalina.core.StandardService startInternal
INFORMATION: Starting service Catalina
Jan 07, 2017 12:56:01 PM org.apache.catalina.core.StandardEngine startInternal
INFORMATION: Starting Servlet Engine: Apache Tomcat/7.0.34
Jan 07, 2017 12:56:02 PM org.apache.coyote.AbstractProtocol start
INFORMATION: Starting ProtocolHandler ["http-bio-80"]
Jan 07, 2017 12:56:02 PM org.apache.coyote.AbstractProtocol start
INFORMATION: Starting ProtocolHandler ["ajp-bio-8009"]
Jan 07, 2017 12:56:02 PM org.apache.catalina.startup.Catalina start
INFORMATION: Server startup in 1378 ms


----------



## Nico80 (7. Jan 2017)

oh ... das fehlerhafte welcome korrigiert ... trotzdem geht es nicht ...
Aber wenn xml optional ist, brauche ich es ja eigentlich nicht oder?


----------



## Flown (7. Jan 2017)

Deine web.xml sieht jetzt gut aus, doch dein HTML sollte eher so aussehen:

```
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hallo Welt</title>
</head>
<body>
    <form action="HelloWorldServlet" method="get">
        Bitte geben Sie Ihren Namen ein: <input type="text" name="a" /> <input
            type="submit"/>
    </form>
</body>
</html>
```


----------



## Nico80 (7. Jan 2017)

Also erstmal vielen Dank für deine Mühe. 
Ich habe jetzt das ganze Projekt gelöscht und neu angelegt. Ich vermute die Dateien liegen irgendwie falsch.
Zumindestens reagiert der Browser jetzt, wenn ich auf den submitt-Button klicke, was er vorher nicht getan hat.
Allerdings kommt die Fehlermeldung "Status 404: /servletUebung/HelloWorldServlet, message: /servletUebung/HelloWorldServlet", *description* The requested resource is not available.

Die Datei liegt ja im Package "hallowelt". Doch selbst wenn ich sie direkt unter dem Default-Package ablege findet er sie nicht. Im Browser wird die Zeile "http://localhost/servletUebung/HelloWorldServlet?a=Micha" aufgerufen.
Jemand eine Idee: Also Servlet ist unter dem Project "servletUebung" im Package "hallowelt" abgelegt,
web.xml und index.html liegen im Ordner "Web-Content".

Danke nochmals
Nico


----------



## Flown (7. Jan 2017)

Pardon, dass war jetzt meine Schuld. Die `action` muss natürlich so heißen, wie das Servlet benannt ist:

```
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hallo Welt</title>
</head>
<body>
    <form action="halloweltservlet" method="get">
        Bitte geben Sie Ihren Namen ein: <input type="text" name="a" /> <input
            type="submit"/>
    </form>
</body>
</html>
```


----------



## Nico80 (7. Jan 2017)

Es funktioniert .... danke für eure Mühe ... halloweltservlet oder helloworldservlet ... so ein bekloppter Fehler. Mir ist das nicht aufgefallen ...
Nochmals Danke
Nico


----------

