2015-07-10 74 views
0

我面臨這個問題,但我已經在我的servlet-context.xml中給了appservlet,但我不知道它從哪裏採取uri [hibernate]我怎麼能重定向到我回到Home.jsp頁配置錯誤:無法重定向到我的home.jsp頁面

警告:org.springframework.web.servlet.PageNotFound - 未找到HTTP請求與URI的映射[/休眠/]在DispatcherServlet的名爲 'appServlet'

我Servlet- Context.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans:beans xmlns="http://www.springframework.org/schema/mvc" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans" 
xmlns:context="http://www.springframework.org/schema/context" 
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd 
    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"> 

<!-- DispatcherServlet Context: defines this servlet's request-processing 
    infrastructure --> 

<!-- Enables the Spring MVC @Controller programming model --> 
<annotation-driven /> 
<resources mapping="/resources/**" location="/resources/" /> 
<context:component-scan base-package="net.codejava.spring"></context:component-scan> 

<!-- Handles HTTP GET requests for /resources/** by efficiently serving 
    up static resources in the ${webappRoot}/resources directory --> 
<resources mapping="/resources/**" location="/resources/" /> 

<!-- Resolves views selected for rendering by @Controllers to .jsp resources 
    in the /WEB-INF/views directory --> 
    <beans:bean 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <beans:property name="prefix" value="/WEB-INF/views/" /> 
    <beans:property name="suffix" value=".jsp" /> 
</beans:bean> 

<beans:bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" 
    destroy-method="close"> 
    <beans:property name="driverClassName" 
     value="jdbc:oracle:thin:@localhost:1521:xe" /> 
    <beans:property name="url" value="oracle.jdbc.driver.OracleDriver" /> 
    <beans:property name="username" value="test" /> 
    <beans:property name="password" value="encore123" /> 
</beans:bean> 

<beans:bean id="sessionFactory" 
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
    <beans:property name="dataSource" ref="dataSource"></beans:property> 
    <beans:property name="configLocation" value="classpath:hibernate.xml"></beans:property> 
</beans:bean> 

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

<beans:bean id="userDao" class="net.codejava.spring.dao.UserDAOImpl"> 
    <beans:constructor-arg> 
     <beans:ref bean="sessionFactory" /> 
    </beans:constructor-arg> 
</beans:bean> 

<beans:import resource="classpath:src/test/resources/hibernate.xml" /> 

我Hibernate.xml

 <?xml version='1.0' encoding='utf-8'?> 
     <!DOCTYPE hibernate-configuration PUBLIC 
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 
    <hibernate-configuration>  
     <session-factory> 
    <property name="dialect">org.hibernate.dialect.Oracle11gDialect</property> 
    <property name="show_sql">true</property> 
    <mapping resource="net/codejava/spring/model/User.hbm.xml"/> 
    </session-factory> 
    </hibernate-configuration> 

我的pom.xml

 <?xml version="1.0" encoding="UTF-8"?> 
      <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.1.2</modelVersion> 
     <groupId>com.spring</groupId> 
     <artifactId>hibernate</artifactId> 
     <name>SpringHibernateInteg</name> 
     <packaging>war</packaging> 
     <version>1.0.0-BUILD-SNAPSHOT</version> 
<properties> 
    <java-version>1.7</java-version> 
    <org.springframework-version>4.1.3.RELEASE</org.springframework-version> 
    <org.aspectj-version>1.6.10</org.aspectj-version> 
    <org.slf4j-version>1.6.6</org.slf4j-version> 
    </properties> 
    <dependencies> 
    <!-- Spring --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>${org.springframework-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-webmvc</artifactId> 
     <version>${org.springframework-version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-orm</artifactId> 
     <version>${org.springframework-version}</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>4.3.5.Final</version> 
    </dependency> 

    <!-- AspectJ --> 
    <dependency> 
     <groupId>org.aspectj</groupId> 
     <artifactId>aspectjrt</artifactId> 
     <version>${org.aspectj-version}</version> 
    </dependency> 

    <!-- Logging --> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>${org.slf4j-version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>jcl-over-slf4j</artifactId> 
     <version>${org.slf4j-version}</version> 
     <scope>runtime</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>${org.slf4j-version}</version> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.15</version> 
     <exclusions> 
      <exclusion> 
       <groupId>javax.mail</groupId> 
       <artifactId>mail</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>javax.jms</groupId> 
       <artifactId>jms</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>com.sun.jdmk</groupId> 
       <artifactId>jmxtools</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>com.sun.jmx</groupId> 
       <artifactId>jmxri</artifactId> 
      </exclusion> 
     </exclusions> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.oracle</groupId> 
     <artifactId>ojdbc6</artifactId> 
     <version>11.2.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-tx</artifactId> 
     <version>3.1.0.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>aopalliance</groupId> 
     <artifactId>aopalliance</artifactId> 
     <version>1.0</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-dbcp2</artifactId> 
     <version>2.0</version> 
    </dependency> 



    <!-- @Inject --> 
    <dependency> 
     <groupId>javax.inject</groupId> 
     <artifactId>javax.inject</artifactId> 
     <version>1</version> 
    </dependency> 

    <!-- Servlet --> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet.jsp</groupId> 
     <artifactId>jsp-api</artifactId> 
     <version>2.1</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 

    <!-- Test --> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.7</version> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 
<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-eclipse-plugin</artifactId> 
      <version>2.9</version> 
      <configuration> 
       <additionalProjectnatures> 
        <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature> 
       </additionalProjectnatures> 
       <additionalBuildcommands> 
         <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand> 
       </additionalBuildcommands> 
       <downloadSources>true</downloadSources> 
       <downloadJavadocs>true</downloadJavadocs> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.5.1</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
       <compilerArgument>-Xlint:all</compilerArgument> 
       <showWarnings>true</showWarnings> 
       <showDeprecation>true</showDeprecation> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>exec-maven-plugin</artifactId> 
      <version>1.2.1</version> 
      <configuration> 
       <mainClass>org.test.int1.Main</mainClass> 
      </configuration> 
     </plugin> 
    </plugins> 
    </build> 
    </project> 

我控制器

 package com.spring.hibernate; 

    import java.text.DateFormat; 
    import java.util.Date; 
    import java.util.List; 
    import java.util.Locale; 

    import net.codejava.spring.dao.UserDAO; 
    import net.codejava.spring.model.User; 

    import org.slf4j.Logger; 
    import org.slf4j.LoggerFactory; 
    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 org.springframework.web.servlet.ModelAndView; 

    /** 
    * Handles requests for the application home page. 
    */ 
    @Controller 
    public class HomeController { 

    @Autowired 
    private UserDAO userDao; 

    @RequestMapping(value="/" , method = RequestMethod.GET) 
    public ModelAndView home() { 
    List<User> listUsers = userDao.list(); 
    ModelAndView model = new ModelAndView("home"); 
    model.addObject("userList", listUsers); 
    return model; 
    } 

    } 

回答

1

在你ServletContext.xhtml的底部,我可以看到

<beans:import resource="classpath:src/test/resources/hibernate.xml" /> 

但是,src/test/resources是類路徑的一部分,只有當您運行maven測試時。

當你運行你的應用程序,類路徑由

  • src/main/java
  • src/main/resources

在你的情況下,類加載器將嘗試解析文件src/test/resources/hibernate.xml在classpath,這意味着將搜索文件src/main/resources/src/test/resources/hibernate.xml - 這顯然不存在

嘗試把hibernate.xmlsrc/main/resources,然後更改配置

<beans:import resource="classpath:hibernate.xml" /> 

,並採取進一步閱讀一看here

+0

我已經解決了所有問題,但是我無法直接訪問我的控制器頁面,即使我完全配置了所有文件,但我面臨的警告:org.springframework.web.servlet.PageNotFound - 未找到針對HTTP請求的映射在DispatcherServlet中名爲'appServlet'的URI [/ hibernate /]我沒有在控制器中給出/ hibernate,但是我想知道從哪裏獲取uri,任何人都可以幫助我 –