使用jetty启用WebApplicationInitializer实现

时间:2013-11-15 16:37:06

标签: java spring logging log4j jetty

此问题与使用Maven / Spring 3.0开发的战争配置Jetty 9服务器有关。 项目中的'src / main / resources / log4j.properties'中存在一个日志文件,当我运行'mvn jetty:run'时,我可以看到打印的日志。但是,当我在Jetty 9中部署已编译的war文件时,日志不会被打印。我根本看不到任何日志(也没有错误)。

我使用以下命令编译了war文件: 'mvn compile war:war'

我打开了war文件,发现log4j.properties位于WEB-INF / classes / log4j.properties中。

以下是有关正在使用的版本的一些其他详细信息:

  1. Jetty 9.0.7
  2. Spring 3.2.4
  3. Log4J:1.5.5
  4. 有人知道我做错了什么吗?请帮忙!

    编辑: 我们开始认为它可能根本没有加载Web应用程序。我们使用org.springframework.web.WebApplicationInitializer而不是web.xml,这是我们的战争结构。

    ├── META-INF
    └── WEB-INF
        ├── classes
        │   ├── applicationContext.xml
        │   ├── com
        │   │   └──….{classes}
        │   └── log4j.properties
        └── lib
            ├── …{jars}
    

2 个答案:

答案 0 :(得分:1)

问题解决了! 问题永远不是关于log4j。这是因为WebApplicationInitializer需要servlet 3.1支持,默认情况下不启用它。 我们在start.ini

中启用了以下功能
# ===========================================================
# Enable additional webapp environment configurators 
# -----------------------------------------------------------
 OPTIONS=plus
 etc/jetty-plus.xml

# ===========================================================
# Enable servlet 3.1 annotations
# -----------------------------------------------------------
 OPTIONS=annotations
 etc/jetty-annotations.xml

答案 1 :(得分:0)

当你的pom <packaging>war</packaging> mvn package试图获得战争时