2017-08-05 120 views
0

我已经在寻找我的错误,但是我什么都没有。仍然在我的代码错误,所以我不得不在这里发布我的问题。 当我使用tomcat服务器在eclipse中运行我的项目时出现错误。 我已经使用MongoDB完成了Spring MVC 4 + Hibernate中的项目。现在我必须用MySQL切换到Hibernate,我在eclipse中启动项目。但是当我用hibernate完成spring的配置时显示错误。 错误和项目的结构遵循以下: enter image description hereeclipse中的HTTP状态404 Spring MVC 4 + Hibernate with MySQL + Tiles.xml

的web.xml

<display-name>Archetype Created Web Application</display-name> 
<context-param> 
    <param-name>ApplicationContext</param-name> 
    <param-value>/WEB-INF/applicationContext.xml</param-value> 
</context-param> 
<servlet> 
    <servlet-name>DMS_MySQL</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet 
</servlet-class> 
<load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>DMS_MySQL</servlet-name> 
    <url-pattern>/</url-pattern> 
    </servlet-mapping> 

<welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 
<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>/assets/*</url-pattern> 
</servlet-mapping> 
<error-page> 
    <error-code>404</error-code> 
    <location>/pages/error/error404.jsp</location> 
</error-page> 

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

<listener> 
    <listener-class>org.springframework.web.context.request.RequestContextListener 
    </listener-class> 
</listener> 

</web-app> 

用SpringMVC-servlet.xml中

<?xml version="1.0" encoding="UTF-8"? 
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" //urls//"> 
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer"> 
    <property name="definitions"> 
     <list> 
      <value>/WEB-INF/tiles.xml</value> 
     </list> 
    </property> 
</bean> 

<bean id="tilesviewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
    <property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" /> 
    <property name="order" value="2"></property> 
</bean> 
<bean id="jstlviewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> 
    <property name="prefix" value="/pages/" /> 
    <property name="suffix" value=".jsp" /> 
    <property name="order" value="3"></property> 
</bean> 
</beans> 

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

    <!-- Enable autowire --> 
    <context:annotation-config /> 
    <context:component-scan base-package="com.cs" /> 

    <mvc:annotation-driven /> 

    <mvc:resources mapping="/resources/**" location="/resources/" /> 

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> 
     <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
     <property name="url" value="jdbc:mysql://localhost:3306/dms" /> 
     <property name="username" value="root" /> 
     <property name="password" value="root" /> 
    </bean> 

    <!-- Session Factory Declaration --> 
    <bean id="sessionFactory" 
     class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="packagesToScan" value="com.cs.bean" /> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 
       <prop key="hibernate.show_sql">true</prop> 
       <prop key="hibernate.enable_lazy_load_no_trans">true</prop> 
       <prop key="hibernate.default_schema">test</prop> 
       <prop key="format_sql">true</prop> 
       <prop key="use_sql_comments">true</prop> 
       <prop key="hibernate.hbm2ddl.auto">update</prop> 
      </props> 
     </property> 
    </bean> 

    <tx:annotation-driven transaction-manager="transactionManager" /> 

    <bean id="transactionManager" 
     class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
     <property name="sessionFactory" ref="sessionFactory" /> 
    </bean> 

    <import resource="/WEB-INF/SpringMVC-servlet.xml"/> 
</beans> 

的LoginController。 java

package com.cs.controller;

public class LoginController { 
    @Autowired 
    private UserService userService; 
    @RequestMapping(value="/login") 
    public String execute(HttpSession session, Model model) throws Exception { 
     model.addAttribute("user", new UserBean()); 
     UserBean tempUser = (UserBean) session.getAttribute("USER");   
     if (tempUser != null) { 
      return "redirect:/home"; 
     } 
     return "logn"; 
    } 

    @RequestMapping(value="/performLogin", method = RequestMethod.POST) 
    public String loginProcess(HttpSession session, Model model, @ModelAttribute("user") UserBean user, 
      BindingResult result) throws Exception 
    { 
     UserBean tempUser = (UserBean) session.getAttribute("USER"); 
     if(tempUser != null) 
     {   
      return "redirect:/home"; 
     } 
     if(user == null) 
     {   
      model.addAttribute("user", new UserBean()); 
      return "login"; 
     } 
     if(StringUtils.isBlank(user.getName())) 
     { 
      result.rejectValue("name", "error.required.username"); 
     } 
     if(StringUtils.isBlank(user.getPassword())) 
     { 
      result.rejectValue("password", "error.required.password"); 
     } 
     if(!result.hasErrors()) 
     { 
      tempUser = userService.findByCredential(user); 
      if(tempUser != null) 
      {    
       if (tempUser.getRole().equals(RoleEnum.ADMIN)) {      
        session.setAttribute("USER", tempUser); 
        return "redirect:/home"; 
       } else if (tempUser.getRole().equals(RoleEnum.CASHIER)) {     
        session.setAttribute("USER", tempUser); 
        return "redirect:/cHome"; 
       }    
      }   
      else 
      { 
       result.reject("error.valid.usernamePassword"); 
      } 
     }  
     user.setMobile(""); 
     model.addAttribute("user", user);  
     return "login"; 
    } 
} 

在此先感谢您。

回答

0

尝试http://localhost:8080/DMS_MySQL/login。 也可以尝试改变你的登录控制器为:

@RequestMapping(value = {"/login", "/"}, method = RequestMethod.GET) 
public String execute(HttpSession session, Model model) throws Exception { 
    model.addAttribute("user", new UserBean()); 
    UserBean tempUser = (UserBean) session.getAttribute("USER");   
    if (tempUser != null) { 
     return "redirect:/home"; 
    } 
    return "login";//typo in your code 
} 

我假设你已经在块配置登录定义的映射。

0

在这里,我觉得这句话

<param-value>/WEB-INF/applicationContext.xml</param-value> 

,并在那里为你的applicationContext.xml

+0

的等待,我会添加它。 – Harsh