2012-04-08 13 views
1

Ich versuche, eine Anwendung mit Spring MVC und innerhalb Eclipse mit der Webapp zu bauen. Ich bin nicht in der Lage, auf die erste Seite zu gelangen oder zu anderen Seiten von dort zu navigieren, ohne eine 404 error zu bekommen. Bitte lass es mich wissen, wenn ich etwas vermisse. Vielen Dank!Maven und Feder mvc funktioniert nicht?

MVC-dispatcher.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:jdbc="http://www.springframework.org/schema/jdbc" 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/context 
    http://www.springframework.org/schema/context/spring-context-3.0.xsd 
    http://www.springframework.org/schema/jdbc 
    http://www.springframework.org/schema/jdbc/spring-jdbc-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="se.guards.controller" /> 
<mvc:resources mapping="/resources/**" location="/resources/" /> 
<mvc:annotation-driven /> 
<context:annotation-config /> 


<!-- show pictures --> 
<mvc:default-servlet-handler /> 

<!-- also add the following beans to get rid of some exceptions --> 
<bean 
    class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> 
<bean 
    class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> 
</bean> 
<bean 
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="viewClass" 
     value="org.springframework.web.servlet.view.JstlView" /> 
    <property name="prefix" value="/WEB-INF/views/" /> 
    <property name="suffix" value=".jsp" /> 
</bean> 

<bean id="messageSource" 
    class="org.springframework.context.support.ResourceBundleMessageSource"> 
    <property name="basenames"> 
     <list> 
      <value>mymessages</value> 
     </list> 
    </property> 
</bean> 

web.xml

<web-app id="WebApp_ID" 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"> 

<display-name>Spring MVC Application</display-name> 

<!-- Spring MVC --> 
<servlet> 
    <servlet-name>mvc-dispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>mvc-dispatcher</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 

<servlet> 
    <servlet-name>>mvc-dispatcher</servlet-name> 
    <servlet-class>org.springframework.js.resource.ResourceServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value> 
     /WEB-INF/mvc-dispatcher-servlet.xml, 
     /WEB-INF/spring-database.xml, 
    </param-value> 
</context-param> 

<!-- Spring Security --> 
<filter> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

database.xml

<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 

<bean id="dataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 

    <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
    <property name="url" value="jdbc:mysql://localhost:3306/test" /> 
    <property name="username" value="root" /> 
    <property name="password" value="password" /> 
</bean> 

userController.java

package se.guards.controller; 
    import java.util.ArrayList; 
    import java.util.Collection; 
    import org.springframework.beans.factory.annotation.Autowired; 
    import org.springframework.stereotype.Controller; 
    import org.springframework.ui.Model; 
    import org.springframework.web.bind.annotation.RequestMapping; 
    import org.springframework.web.bind.annotation.RequestMethod; 
    import se.datalayer.guards.service.UserService; 
    import se.guard.User; 

    @Controller 
    @RequestMapping(value="/") 
    public class UserController 
    { 

@SuppressWarnings("unused") 
@Autowired 
private UserService userService; 

@RequestMapping(value = "/", method = RequestMethod.GET) 
public String findAllUsers(Model model){ 

    Collection<User> userList= new ArrayList<User>(); 

    model.addAttribute("users", userList); 
    return "showallusers"; 

     } 

     } 

showallusers.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> 
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4 /loose.dtd"> 
    <html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>found users</title> 
</head> 
<body> 
<table> 
    <c:forEach var="allusers" items="${users}"> 
     <tr> 
      <td>${allusers.firstname}</td> 

      <td>${allusers.lastname}</td> 
     </tr> 
    </c:forEach> 
     </table> 
    </body> 
    </html> 

Antwort auf die Fragen:

Dies ist der Code ich verwende. Die @Controller Annotation muss da sein. Wie gesagt: HTTP Status 404 -/guard_weblayer/typ Statusbericht Nachricht/guard_weblayer/ Beschreibung Die angeforderte Ressource (/ guard_weblayer /) ist nicht verfügbar. Apache Tomcat/7.0.25


Ich benutze ein restfule Design, ein domainlayer, Datalayer und weblayer. Kann es den Weblayer beeinflussen?

+0

Ihre web.xml hat einen zusätzlichen> in > mvc-dispatcher '. Bitte stellen Sie sicher, dass dies der gleiche Code ist, den Sie in Ihrer IDE verwenden! Wenn dies der Fall ist, korrigieren Sie dies und versuchen Sie es erneut. Wenn Sie dies tun, fügen Sie auch alle Ausnahmen hinzu, die Sie in Ihrem Protokoll sehen. Wenn dies nicht derselbe Code ist, stellen Sie sicher, dass es sich um denselben Code handelt. – jmort253

+0

Was wird beim Starten des Webservers in die Konsole geschrieben? Welchen Server benutzen Sie? –

+0

Drehen Sie auch die Lautstärke an diesem Logger hoch. Ich empfehle TRACE oder ALL beim Debuggen dieser Art von Problemen, da die Frameworks dazu neigen, DEBUG, TRACE anstelle von INFO zu verwenden. Dies wird Ihnen sagen, was das Framework mit Ihrer web.xml und mvc-dispatcher.xml macht. – jmort253

Antwort

0

Vielleicht möchten Sie von vorne beginnen und ein Beispiel aus springbyexample verwenden. Es enthält alles, was Sie brauchen, in einer verständlichen Art und Weise (und auch in maven.)

Wahrscheinlich ist das einfacher als das Debuggen des aktuellen Codes.

+0

Ich möchte wissen, was die Probleme verursachen kann und warum es dosent Arbeit.Ich habe ein Beispiel: Maven mit Feder Sicherheit und es funktioniert, aber wenn ich ein neues Projekt und folgen Sie den gleichen Prinzipien es Dosent Arbeit, warum? Fehle ich etwas Wichtiges? ??????? oder was???? – user1067665