2010-11-28 105 views
4

我希望這會更容易一些,因爲我只是想在GlassFish v3的EAR裏面用Wicket做一個簡單的測試。不過現在我已經加入通過NetBeans插件的檢票庫到我的WAR項目GlassFish v3上的Wicket

  • 檢票1.4.10.jar
  • 檢票口的擴展,1.4.10.jar
  • SLF4J-API 1.4 .2.jar
  • SLF4J-jdk14-1.4.2.jar

,當我嘗試推出我的web應用程序在GlassFish我得到這個啓動錯誤:

exception

javax.servlet.ServletException: PWC1243: Filter execution threw an exception root cause

java.lang.NoClassDefFoundError: org/apache/velocity/app/Velocity

Wicket是否需要速度作爲依賴?我檢查了由maven創建的默認項目結構,並沒有發現依賴關係。我也檢查了一個沒有提及速度的wicket + ejb教程。現在,我加速度我的類路徑

我得到這個錯誤:

http://jira.codehaus.org/browse/MSITE-286

這似乎是一個問題在2008年得到解決(我用的是最新版本的當然)。

我在做什麼錯的任何想法?

在此先感謝

回答

3

檢票不要求速度,但它可以通過檢票velocity.jar庫與它合作。

完整的堆棧跟蹤可能有助於發現試圖加載它,儘管Web應用程序啓動問題可能會讓診斷變得非常痛苦。

編輯:

堆棧跟蹤的相關部分似乎是

java.lang.NoClassDefFoundError: org/apache/velocity/app/Velocity 
     at org.apache.wicket.velocity.Initializer.init(Initializer.java:63) 
     at org.apache.wicket.Application.callInitializers(Application.java:843) 
     at org.apache.wicket.Application.initializeComponents(Application.java:678) 
     at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:725) 

所以檢票應用肯定是試圖加載速度,我們不能責怪的GlassFish。我將切換到一臺機器,在那裏我有檢票源,並回來也許更多的想法,但我發現你的web.xml也可能有關於檢票配置的有用信息。

診斷

的web.xml文件是沒有問題的。

問題是Application.callInitializers()從類路徑上的所有wicket.properties文件加載初始值設定項,並嘗試初始化相關組件。

即使您沒有使用velocity,您的classpath上也有wicket-velocity.jar,並且wicket正試圖初始化它,因爲它包含一個導致調用org.apache.wicket.velocity.Initializer.init()的wicket.properties文件(它也位於wicket- velocity.jar)。此方法嘗試調用Velocity中的靜態init方法,該方法不在類路徑中。

如果您的類路徑中包含wicket-velocity.jar,則此問題應該消失。

+0

嘿,謝謝 - 這裏是stacktrace:http://pastebin.com/4wzZaRcf – 2010-11-28 14:04:09