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 musshttp://localhost:8080/CONTEXTROOT/users
woCONTEXTROOT
Sie in Ihrem Projekt ausgewähltRight Click -> Properties -> Web Project Settings
. Wenn Ihr Projekt bereits eingesetzt Tomcat, dann muss die URLhttp://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
Du musst angemeldet sein, um einen Kommentar abzugeben.
ändern Sie Ihre web.xml zu
und dispatch-servlet.xml zu
Brauchen Sie nicht applicationContext.xml für deinen code ausführen
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.Ein häufiger Fehler ist das
Stellen Sie sicher, dass die Gruppen-id in pom.xml ist das Elternteil, dass erwähnt in
Beispielsweise
Wenn die Gruppe
Id-com.cavesofprogramming.spring.web
dannDen Effekt, dass der controller nicht gefunden wird in der maven-build-und
als Ergebnis der Kartierung nicht durchgeführt, um die richtige jsp.
Können, müssen Sie folgende Zeilen in Ihre spring-context.xml
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:
In servlet.xml das Basis-Paket sollte auf den korrekten Pfad, wo die controller-Klasse befindet.
@Controller sollte erwähnt werden, über die controller-Klasse.
In der controller-Klasse @RequestMapping Wert sein sollte als das gleiche wie die web.xml url-pattern-parameter.
In der controller-Klasse ModelAndView zurück .jsp-Seite sollte auf dem gleichen Weg zeigt in die servlet.xml der prefix-Wert der ViewResolver.
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