Montag, Januar 20, 2020

org.springframework.web.- servlet.DispatcherServlet noHandlerFound

Ich bekomme diese Fehlermeldung beim Zugriff auf http://api:8080/users die 404 und ich bekomme diesen error in meiner Konsole:

Sep 23, 2014 5:57:52 PM org.springframework.web.- servlet.DispatcherServlet noHandlerFound
WARNUNG: Kein mapping gefunden für den HTTP-request mit dem URI [/user] in DispatcherServlet mit dem Namen ‚dispatcher‘

Wenn ich auf http://localhost:8080/api/users bekomme ich einen 404 in meinem browser, aber kein Fehler in meiner Konsole

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">

    <context:component-scan base-package="com.api"/>
</beans>

dispatcher-servlet.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:p="http://www.springframework.org/schema/p"
  xmlns:aop="http://www.springframework.org/schema/aop"
  xmlns:tx="http://www.springframework.org/schema/tx"
  xmlns:context="http://www.springframework.org/schema/context"
  xmlns:mvc="http://www.springframework.org/schema/mvc"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd
    ">

  <context:component-scan base-package="com.api"/>      
</beans>

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">

  <servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>2</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

Users.java:

package com.api;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RequestMapping("/users")
public class Users {
     @Autowired
     public Users() {

     }

    @RequestMapping(method = RequestMethod.GET)
    public void getUser() {
        System.out.println("\nhere\n");
    }
}

Wenn jemand irgendwelche Ahnung, würde ich es sehr zu schätzen. Ich habe mir mehrere Fragen mit dem gleichen Fehler wie ich immer bin sondern gemeinsame Lösung Hinzugefügt, die habe ich schon, so bin ich nicht sicher, was anderes zu tun. Danke.

EDIT: ich habe soeben den code zu dem, was die neueste Referenz doc, und ich bekomme immer noch den gleichen Fehler.
EDIT: Update, um zu zeigen, dass meine aktuelle Zustand der Dateien.

  • Lesen Sie die Spring Reference Dokumentation, mischen Sie die alte Konfiguration mit der neuen Konfiguration über Spring MVC. Dein code ist falsch.
  • Kannst du ein wenig genauer bitte?
  • Ich habe aktualisiert mein Frage mit den neuesten code aus der Referenzdokumentation und ich bekomme immer noch den gleichen Fehler.
  • Jetzt ist Ihre Konfiguration korrekt ist. Die URL http://api:8080/ hat keinen Sinn, die URL zum test muss http://localhost:8080/CONTEXTROOT/users wo CONTEXTROOT Sie in Ihrem Projekt ausgewählt Right Click -> Properties -> Web Project Settings. Wenn Ihr Projekt bereits eingesetzt Tomcat, dann muss die URL http://localhost:8080/projectname/users
  • Ich habe es so gemacht aber ich bekomme immer noch einen 404, aber ich bekomme keinen error in meiner Konsole.
  • Aktualisieren Sie Ihren ersten Beitrag, Anteil der vollständigen Fehler-stack-trace. Ich brauche mehr details
  • Aktualisiert, wird der volle stack-trace wird oben angezeigt, nur diese beiden Zeilen sind alles, was ich bekommen
  • Wenn ist nur, dass, könnte Sie überprüfen Sie Ihre Tomcat log – Verzeichnis? Sollte es erscheinen weitere details. überprüfen Sie die log-Dateien, da gibt es viele entsprechend Ihrer Rollen.
  • Es gibt nichts in catalina.aus

InformationsquelleAutor wonza | 2014-09-23

5 Kommentare

  1. 2

    ändern Sie Ihre web.xml zu

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
    
      <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>2</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
    </web-app>

    und dispatch-servlet.xml zu

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:p="http://www.springframework.org/schema/p"
      xmlns:aop="http://www.springframework.org/schema/aop"
      xmlns:tx="http://www.springframework.org/schema/tx"
      xmlns:context="http://www.springframework.org/schema/context"
      xmlns:mvc="http://www.springframework.org/schema/mvc"
      xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
    
      <context:component-scan base-package="com.api"/>
    </beans>

    Brauchen Sie nicht applicationContext.xml für deinen code ausführen

    • Ich habe versucht, aber ich musste hinzufügen: springframework.org/schema/context springframework.org/schema/context/spring-context.xsd, um es arbeiten, aber ich bekomme immer noch den gleichen Fehler
    • welchen Fehler hast du bekommen?
    • Es ist oben meine Frage
    • In der Java Klasse Benutzer, müssen Sie die @Controller-annotation an der Klasse(Sie hatte es vor der Bearbeitung).
    • Ich versuchte es mit und ohne @ – Controller, arbeiten entweder
    • Sind Sie immer noHandlerFound Ausnahme oder 404-Fehler? Wenn es 404, das ist, weil dein controller nicht zurück, ein Objekt oder Modell. stackoverflow.com/questions/7175509/…
    • Ich bekomme noHandlerFound in meinem eclipse-Konsole, aber die 404 im browser
    • Die @Autowired-annotation bewirkt, dass java.lang.IllegalStateException: Autowired annotation requires at least one argument: public com.api.Users(), der entfernt werden muss. Aber noch nicht reproduzieren können, noHandlerFound Fehler.
    • Dank seiner Arbeit . aber warum ist dieser Fehler?
    • es ist schon so lange her, weiß nicht mehr die details jetzt.

  2. 2

    Ein häufiger Fehler ist das
    Stellen Sie sicher, dass die Gruppen-id in pom.xml ist das Elternteil, dass erwähnt in

        </context:component-scan>  

    Beispielsweise
    Wenn die Gruppe Id-com.cavesofprogramming.spring.web dann

        <context:component-scan base- package="com.cavesofprogramming.spring.web.controllers">

    Den Effekt, dass der controller nicht gefunden wird in der maven-build-und
    als Ergebnis der Kartierung nicht durchgeführt, um die richtige jsp.

    • Bitte formatieren Sie Ihren code so richtig die OP bestimmen kann, was sind die Kommentare und was ist code.
  3. 0

    Können, müssen Sie folgende Zeilen in Ihre spring-context.xml

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/view/" />
            <property name="suffix" value=".jsp" />
        </bean>
    
    Note: property prefix and suffix need to modify based on your application like  .jsp if you are using jsp files.
  4. 0

    Ursache – Hauptgrund für dieses Problem ist servlet.xml Datei ist nicht in der Lage zu finden, die richtigen controller, die konnte umleiten Ihre Anfrage.

    Lösung – stellen Sie Sicher paar Dinge:

    1. In servlet.xml das Basis-Paket sollte auf den korrekten Pfad, wo die controller-Klasse befindet.

    2. @Controller sollte erwähnt werden, über die controller-Klasse.

    3. In der controller-Klasse @RequestMapping Wert sein sollte als das gleiche wie die web.xml url-pattern-parameter.

    4. In der controller-Klasse ModelAndView zurück .jsp-Seite sollte auf dem gleichen Weg zeigt in die servlet.xml der prefix-Wert der ViewResolver.

  5. 0

    Habe ich auch vor dem gleichen problem
    org.springframework.web.servlet.DispatcherServlet noHandlerFound

    Ich bin schlagen andere url im Postbote dieses problem zu lösen, überprüfen Sie einfach Ihren Postboten, die URL, die Sie schlagen

Kostenlose Online-Tests