2013-11-15 68 views
1

此問題與使用Maven/Spring 3.0中開發的戰爭配置Jetty 9服務器有關。 項目中的'src/main/resources/log4j.properties'中存在一個日誌文件,我可以看到運行'mvn jetty:run'時打印的日誌。但是,當我在Jetty 9中部署一個編譯的war文件時,日誌不會被打印。我根本沒有看到任何日誌(也沒有錯誤)。使用jetty啓用WebApplicationInitializer實現

我使用下面的命令編譯WAR文件: 'MVN編譯戰爭:戰爭'

我打開war文件,只見那log4j.properties定位於WEB-INF /班/ log4j.properties 。

下面是關於正在使用的版本進行了一些額外的細節:

  1. 碼頭9.0.7
  2. 春3.2.4
  3. Log4J的:1.5.5

是否有任何人知道我做錯了什麼?請幫忙!

編輯: 我們開始認爲它可能沒有加載Web應用程序。我們使用org.springframework.web.WebApplicationInitializer而不是web.xml,這裏是我們的戰爭結構。

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

以下是在戰爭文件'log4j.properties'?如果是,在哪個文件夾中? – Ralph

+0

Hi Ralph,位於war文件的WEB-INF/classes/log4j.properties中的log4j.properties。 –

回答

0

當你的POM具有嘗試mvn package獲得戰爭,而不是

1

問題解決的<packaging>war</packaging>! 這個問題從來不是關於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 
+0

如果我以編程方式運行服務器,並且沒有任何'start.ini'文件,該怎麼辦?你會有解決方案嗎? – Jagger