Null ModelAndView retourné à DispatcherServlet
Je suis en train de lancer mon application web à l'aide de Spring, Hibernate et Apache Tuiles.
Il semble que le code n'a pas d'erreurs, mais je suis juste une page 404.
/var/log/tomcat7/catalina.:
DEBUG: org.springframework.web.servlet.DispatcherServlet - Servlet 'dispatcher' configured successfully
DEBUG: org.springframework.web.servlet.DispatcherServlet - DispatcherServlet with name 'dispatcher' processing GET request for [/example/index.html]
DEBUG: org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Looking up handler method for path /index.html
DEBUG: org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Did not find handler method for [/index.html]
DEBUG: org.springframework.web.servlet.handler.SimpleUrlHandlerMapping - Matching patterns for request [/index.html] are [/**]
DEBUG: org.springframework.web.servlet.handler.SimpleUrlHandlerMapping - URI Template variables for request [/index.html] are {}
DEBUG: org.springframework.web.servlet.handler.SimpleUrlHandlerMapping - Mapping [/index.html] to HandlerExecutionChain with handler [org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler@32645ccb] and 1 interceptor
DEBUG: org.springframework.web.servlet.DispatcherServlet - Last-Modified value for [/example/index.html] is: -1
DEBUG: org.springframework.web.servlet.DispatcherServlet - Null ModelAndView returned to DispatcherServlet with name 'dispatcher': assuming HandlerAdapter completed request handling
DEBUG: org.springframework.web.servlet.DispatcherServlet - Successfully completed request
Servlet:
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/META-INF/spring/dispatcher-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
contexte:
<mvc:annotation-driven />
<tx:annotation-driven />
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView" />
</bean>
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions">
<value>
/WEB-INF/**/tiles.xml
</value>
</property>
</bean>
<context:component-scan base-package="com.example.controller" />
<resources mapping="/resources/**" location="/resources/" />
<default-servlet-handler />
<context:property-placeholder location="classpath:jdbc.properties" />
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.example.model" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<prop key="hibernate.generate_statistics">${hibernate.generate_statistics}</prop>
</props>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
Les dépendances Maven:
<properties>
<java.version>1.6</java.version>
<spring.version>3.1.1.RELEASE</spring.version>
<slf4j.version>1.6.4</slf4j.version>
</properties>
<dependencies>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2.2</version>
</dependency>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
<exclusions>
<!-- Exclude Commons Logging in favor of SLF4j -->
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<scope>runtime</scope>
</dependency>
<!-- Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.1.1.Final</version>
</dependency>
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.1-901-1.jdbc4</version>
</dependency>
<!-- Servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- Apache Tiles -->
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-jsp</artifactId>
<version>2.2.2</version>
<exclusions>
<!-- Exclude Commons Logging in favor of SLF4j -->
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- JSR 303 with Hibernate Validator -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.1.0.Final</version>
</dependency>
</dependencies>
Avant d'ajouter tous les hibernate trucs que j'ai essayé l'application web et il a travaillé tout simplement génial. Mais qu'est ce qu'une application web sans base de données?
J'ai déjà passé des heures sur ce sujet et juste ne pouvez pas trouver le problème...
Mise à JOUR
Contrôleur:
package com.example.controller;
import java.util.Map;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/")
public class BlogController {
@RequestMapping("/index.html")
public String posts(Map<String, Object> map) {
return "posts";
}
}
Cette demande (index.html) censé passer par un contrôleur? ou est-ce juste un fichier HTML statique? Je vois que cela n'est pas de trouver une méthode de gestionnaire d'', donc si vous essayez d'utiliser un contrôleur de printemps ne peut pas le trouver
Dans
Pouvons-nous voir votre contrôleur de trop - le tout?
bien sûr, voir modifier ci-dessus
Dans
web.xml
, je vois la cartographie de /
, ne vous signifie probablement /*
? Que l'URL qui sont que vous essayez d'atteindre?Pouvons-nous voir votre contrôleur de trop - le tout?
bien sûr, voir modifier ci-dessus
OriginalL'auteur dtrunk | 2012-06-26
Vous devez vous connecter pour publier un commentaire.
Essayer d'envoyer ModelAndView au lieu de String
Ou
Vous pouvez envoyer la carte de l'objet en tant que paramètre à ModelandView méthode(qui est déjà surchargé)
OriginalL'auteur Narendra Kumar Achari
Je l'ai résolu.
Il y a deux contextes: racine (application de large) et le contexte de la servlet
J'ai défini
viewResolver
,tilesConfigurer
,tx:annotation-driven
etmvc:annotation-driven
dans le contexte de la racine.De le déplacer vers la servlet contexte résolu le problème.
Mis à JOUR
J'ai déplacé
viewResolver
,tilesConfigurer
,tx:annotation-driven
etmvc:annotation-driven
définitions deapplicationContext.xml
àcontextConfigLocation
(dispatcher-servlet.xml
)Hey, je suis confronté à la même question. Pourriez-vous veuillez donner plus de détails ou exemples de code fonctionne aussi !
Désolé, c'est il y a longtemps. Vérifiez votre configuration des contextes. Je viens de déménager les éléments mentionnés.
veuillez donner plus de détails..
Absolument, cela doit être plus élaboré
OriginalL'auteur dtrunk