wake-up-neo.net

kater angeforderte Ressource () ist nicht verfügbar

ich weiß, dass dies eine sehr häufige Frage ist, da ich in verschiedenen Foren viele Fragen dazu habe, einschließlich SO. aber ich habe noch keine Lösung gefunden meine web.xml (in WEB-INF)

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://Java.Sun.com/xml/ns/javaee" xmlns:web="http://Java.Sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee http://Java.Sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>SMSProjectNew</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>ReceiveMessagesServlet</display-name>
    <servlet-name>ReceiveMessagesServlet</servlet-name>
    <servlet-class>com.sendreceive.ReceiveMessagesServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ReceiveMessagesServlet</servlet-name>
    <url-pattern>/ReceiveMessagesServlet</url-pattern>
  </servlet-mapping>
</web-app>

die HTML-Seite index.html befindet sich im Ordner WebContent 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
The application started successfully version 1:27
<form action="/ReceiveMessagesServlet" method="post">
<input type="text" name="number"/>
<input type="text" name="message"/>
<input type="submit" name="submit"/>
</form> 
</body>
</html>

schließlich das Servlet ReceiveMessagesServlet im Verzeichnis src\com.sendreceive com.sendreceive;

import Java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

   public class ReceiveMessagesServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public ReceiveMessagesServlet() {
        super();
        // TODO Auto-generated constructor stub
    }


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        processRequest(request,response);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        processRequest(request,response);
    }

    protected void processRequest(HttpServletRequest request,
            HttpServletResponse response) {
        String responseMessage = request.getParameter("message");
        String responseNumber = request.getParameter("number");
        System.out.println(responseMessage+responseNumber);
    }

}

ich habe das Tomcat-Plugin in Eclipse installiert. Wenn ich mit der rechten Maustaste auf das Projekt klicke und dann auf das Projekt auf dem Server ausführen klicke. Der Tomcat-Server startet in Eclipse und die Seite index.html wird angezeigt. Wenn ich jedoch einige Werte in die Felder eingebe und auf "Senden" klicke, wird der Fehler 404 angezeigt. Ich habe seit den letzten 2 Stunden zu kämpfen. auch..fyi, ich benutze dieses Tutorial http://www.ibm.com/developerworks/opensource/library/os-Eclipse-Tomcat/index.html

9
i_raqz

Sie erhalten 404-Fehler wegen der Aktion = "/ ReceiveMessagesServlet", bitte entfernen Sie den Schrägstrich. Versuchen Sie es mit action = "ReceiveMessagesServlet". 

Wenn Sie dem URL-Muster einen Schrägstrich hinzufügen, sucht der Container nach einer Webanwendung, die mit dem Namen 'ReceiveMessagesServlet' bereitgestellt wird. Da dies nicht der Fall ist, erhalten Sie den Fehler 404. 

11
donatello

Wenn Sie Ihre Anwendung in einem Servlet-Container bereitstellen, wird Ihren URLs möglicherweise der Kontextpfad vorangestellt, der Ihre Anwendung zwischen anderen Anwendungen in diesem Container identifiziert (d. H. /ReceiveMessagesServlet wird zu /MyApp/ReceiveMessagesServlet).

Daher sollten Sie diese Möglichkeit in Betracht ziehen und Ihre URLs entsprechend ändern, z. B. mit JSTLs <c:url>:

<form action="<c:url = value = '/ReceiveMessagesServlet' />" method="post"> 

Alternativ auch ohne JSTL:

<form action="${pageContext.request.contextPath}/ReceiveMessagesServlet" method="post"> 
7
axtavt

Fehler in Ihrem Servlet können dazu führen, dass Tomcat es als nicht verfügbar markiert, wie ich es in meinem Serverprotokoll erhalten habe:

06/02/2013 13:32:43 org.Apache.catalina.core.ApplicationContext log INFO: Servlet Imager als nicht verfügbar markieren 06/02/2013 13:32:43 Org.Apache .catalina.core.StandardWrapperValve ruft SEVERE auf: Ausnahme für Servlet Imager Java.lang.ClassNotFoundException com.project.test.ImageThumber

Sie sollten im Protokoll nach Gründen suchen. In meinem Fall ein fehlendes Glas mit einigen Testklassen.

0
cavila