2017-12-11 1 views
0

Ich versuche, eine einfache HelloWorld mit Spring MVC zu tun, aber obwohl ich ein Tutorial (auf Udemy und tutorialspoint) Schritt-für-Schritt und den Import der genau gleichen dependecies es erhöht diese Ausnahme hält, wenn ich localhost:8080/[project-name]/hi nennen:WARNUNG: Keine Zuordnung für HTTP-Anfrage mit URI gefunden [/ helpme/hi] in DispatcherServlet mit dem Namen 'Hallo'

WARNING: No mapping found for HTTP request with URI [/helpme/hi] in DispatcherServlet with name 'hello' 

Aber die Eingabe nur

localhost:8080/[project-name] 

zeigt ein index.jsp richtig.

Ich benutze Tomcat v8.5 und JRE 1.8. ich Eclipse als IDE verwenden (glaube nicht, das relevant ist ...)

Hier ist mein Code:

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>org.od.spring</groupId> 
<artifactId>helpme</artifactId> 
<packaging>war</packaging> 
<version>0.0.1-SNAPSHOT</version> 
<name>helpme Maven Webapp</name> 
<url>http://maven.apache.org</url> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>5.0.2.RELEASE</version> 
    </dependency> 

</dependencies> 
<build> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.2</version> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
</build> 
</project> 

hallo-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:context="http://www.springframework.org/schema/context" 
xmlns:p="http://www.springframework.org/schema/p" 
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.me.controller" /> 

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" name="resolver"> 
    <property name="prefix" value="/WEB-INF/views/"/> 
    <property name="suffix" value=".jsp"/> 
</bean> 

web.xml

<!DOCTYPE web-app PUBLIC 
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd" > 

<web-app> 
    <display-name>Archetype Created Web Application</display-name> 

    <servlet> 
    <servlet-name>hello</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>hello</servlet-name> 
    <url-pattern>/</url-pattern> 
    </servlet-mapping> 
</web-app> 

HelloController.java

package com.me.controller; 

import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.servlet.ModelAndView; 

@Controller 
public class HelloController { 

     @RequestMapping("/hi") 
     public ModelAndView hello() { 
     ModelAndView mav = new ModelAndView(); 
     mav.setViewName("hello"); 
     return mav; 
    } 

} 

Meine Projektstruktur korrekt ist: Unter src> main> Ressourcen gibt es mein Paket com.me.controller Under der "webapp" ordner ich habe WEB-INF> ansichten> hello.jsp

Ich sah überall im Web, auch hier auf st ackoverflow (ich weiß, es gibt eine Menge Probleme wie meiner), und ich habe versucht, jede Code-Variation, die ich finden konnte, aber keine Antwort scheint es zu lösen.

+0

zeigen Sie das Paket für die Controller-Klasse. – DwB

+0

Ok ich habe es dem Code hinzugefügt, es ist "com.me.controller" – odysseas

Antwort

0

Ich replizierte das gleiche in meiner Sonnenfinsternis und erfolgreich. Behebung eines Problems in Ihrem Hello Controller, Sie haben ModelAndView nicht importiert und es gibt keine Methode namens setName für ModelAndView, die unten aktualisiert wird. Just FYI, ich benutze Tomcat 8.0.36 und Java 8, das sollte aber keinen Unterschied machen.

package com.me.controller; 
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.servlet.ModelAndView; 

@Controller 
public class HelloController { 

    @RequestMapping("/hi") 
    public ModelAndView hello() { 
    ModelAndView mav = new ModelAndView("hello"); 
    return mav; 
} 

} 

This is my project structure, make sure you have in similar way

+0

Es löst jetzt eine Parsing-Ausnahme mit der folgenden Nachricht: das entsprechende lustige Zeichen ist streng, aber es ist nicht möglich, eine Deklaration für Element odysseas

+0

@odysseas überprüfen Sie meine aktualisierte Antwort, das ist Ursache für fehlende MVC in der Deklaration. – Kumar

+0

@Jhon die letzte Ausnahme ist weg, so dass es funktioniert, aber es hat nicht das Hauptproblem gelöst ... – odysseas

0

Es ist eine Weile gewesen, da ich ein Servlet in web.xml definieren gehabt haben, aber ich beleieve Ihr URL-Muster/*

sein muss
+0

Es funktioniert nicht; Ich habe das schon ausprobiert, bevor ich hier gefragt habe und ich habe es jetzt gleich nochmal versucht. Mit/* kann es nicht einmal index.jsp finden ... – odysseas

0

I gelöst. Es war ein Eclipse-Problem.

In meiner Projektstruktur fiel mir ein Ordner namens "Deployed Resources" auf, in dem ich das Webapp-Verzeichnis mit allen Dateien gefunden habe. Das Problem bestand darin, dass die Datei web.xml, die in diesem Verzeichnis enthalten war, die Standarddatei war, in der alle Willkommensdateien aufgelistet waren, und nichts mehr, also konnte Tomcat (offensichtlich) die Anforderung nicht zuordnen. Ich habe es mit meiner Datei geändert und es hat funktioniert. Ich weiß nicht, warum das passiert ist, ich denke, ich werde sehr gut Eclipse-Einstellungen überprüfen.

Vielen Dank an alle für die Hilfe.

Verwandte Themen