Spring Framework Project没有加载?

时间:2015-09-01 13:21:49

标签: java spring hibernate spring-mvc tomcat

我一直在使用Spring框架几天尝试建立一个基于this tutorial之类的项目。

不幸的是,当我使用Tomcat部署项目时,我得到一个看起来像这样的屏幕:

Tomcat 404 error

我不太确定要离开这里。我检查了web.xml和任何其他可能影响错误的相关.xml文件,但是我看不到错误。我将在下面发布Gallery .find({ $or: [ {status: 'public'}, {status: 'restricted', restriction: 'cantview', canview: reqId} ] }) .sort('-created') .exec(function(err, galleries) {...}); web.xml个文件。

的web.xml

spring-config.xml

spring_config.xml

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

 <display-name>Campaign Spring V2</display-name>  

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

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

    </web-app>  

如果需要,我可以将项目发布到GitHub,看看是否有更大的缺陷可以在代码中找到。此外,如果需要发布项目的任何其他部分,我将更新OP以显示任何内容。谢谢!

编辑: http://localhost/也没有加载,我之前的陈述不正确。

EDIT2:以下是GitHub项目的链接。

EDIT3:再次浏览Spring教程后,这已经解决了!

3 个答案:

答案 0 :(得分:1)

你没有很好地遵循教程。控制器映射以

开头
@RequestMapping("/")
public class AppController {

第一个注释@RequestMapping("/")对于spring计算请求使用的路径非常重要。

缺少此代码

@Bean
    public LocalSessionFactoryBean sessionFactory() {
        LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
        sessionFactory.setDataSource(dataSource());
        sessionFactory.setPackagesToScan(new String[] { "com.bridge.compaignspring.model" });
        sessionFactory.setHibernateProperties(hibernateProperties());
        return sessionFactory;
     }

没有它Spring不能自动装配依赖于sessionFactory的属性。

答案 1 :(得分:0)

刚刚通过github项目快速检查一下,你有更多我想到的问题。

您正在使用XML配置在Spring-config.xml中使用配置创建DispatchServer,而在类路径上具有AppInitializer

AppInitializer使用AppConfig创建一个Datasource bean,你的XML也创建一个Datasource bean和SessionFactory。

Tomcat将找到AppInitializer,并且正在运行它。 这意味着它尝试在创建XML中的SessionFactory之前自动装配SessionFactory。 要解决此问题,请执行以下操作:

将spring_config.xml从/ webapp / WEB-INF移动到/ resources

将以下@import行添加到AppConfig.java

@Configuration
@EnableWebMvc
@ImportResource("classpath:spring-config.xml")
@ComponentScan(basePackages = "com.bridge.campaignspring")
public class AppConfig {

现在您需要删除正在创建的2个DataSource bean中的1个。我建议删除XML中的那个,因为它使用无效的属性值。即${database.driver}不存在。

完成这些更改后,您仍然会遇到其他问题,但您的情况比您更进一步。

答案 2 :(得分:0)

你在Web Module Path中设置了tomcat settings吗?

参考这些问题Unable to run Spring REST application using Tomcat