Spring MVC-controller nicht aufgerufen werden von Tomcat

Update: Irgendwie, nach einer weiteren Runde von Anpassungen und Umschichtungen, localhost:8080/ping-1.0/ping angefangen zu arbeiten. Konfigurations-Dateien sind immer noch da unten. Ich wünschte, ich wusste, was ich behoben, ohne es zu wissen, aber es ist nun behoben.

Ich ve wurde kämpfen mit diesem für ein paar Tage, versucht, alle möglichen Lösungen, die ich gesehen habe hier und anderswo, und nichts gearbeitet hat. Ich habe eine Spring MVC-controller bereitgestellt, der in Tomcat, kann aber nicht darauf zugreifen.

Tools:

Spring 3.2.0

Tomcat 7

Java 1.6

Frühjahr controller:

@Controller
public class PingController {

@RequestMapping("/ping")
public String ping (Model model) throws Exception {
    System.out.println("ping ping ping");
    String s = (new Date()).toString();
    model.addAttribute("message", s);
    return "ping";
}
}

web.xml:

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<servlet>
    <servlet-name>ping</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/ping-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>ping</servlet-name>
    <url-pattern>/ping</url-pattern>
</servlet-mapping>

</web-app>

ping-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:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

<context:component-scan base-package="myclass.ping"/>

<mvc:annotation-driven />
</beans>

Die war-Datei wird als "ping" bezeichnet-1.0.Krieg. - Bereitstellung zu gehen scheint fine. Sehe ich ein Verzeichnis namens ping-1.0 in $CATALINA_BASE/webapps und diese in catalina.log:

INFO: Mapped "{[/ping],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String myclass.ping.PingController.ping(org.springframework.ui.Model) throws java.lang.Exception

Tomcat läuft auf port 8080. Ich kann auf localhost:8080/manager zum Beispiel. Aber localhost:8080/ping gibt eine 404-Meldung von Tomcat. Ich sehe nichts in den logs andere als ein Datensatz aus einer GET-Anfrage. Keine Fehler überhaupt. Ich habe versucht, eine Menge von Variationen von request-mapping, URL-filter, etc. und kann einfach nicht damit es funktioniert.

  • Sie sollten den Namen der Bereitstellung an den Kontext der URL. Wenn Sie bei der Bereitstellung foo.Krieg die URL localhost:8080/foo/ping. Also für Sie ist es localhost:8080/ping-1.0/ping
  • Schon probiert-hat nicht funktioniert.
  • was ist das Paket, in dem die PingController liegt
  • Komischerweise, nach einem weiteren go-round, ping-1.0/ping angefangen zu arbeiten.
InformationsquelleAutor pmext | 2013-04-29
Schreibe einen Kommentar