2009-02-08 103 views
2

我有一個在tomcat 5.5上正常工作的spring web應用程序。我試圖將相同的web應用程序部署到tomcat 6容器,並提出一些問題。將Spring Web App從tomcat 5.5遷移到tomcat 6.0時出現的問題

我所遇到的主要兩個問題是與爲jstl配置容器並使Spring安全登錄正常工作有關。

我相信我已經通過在$ CATALINA_HOME/lib目錄從here了JSTL-1.2.jar LIB(雖然它確實看起來很奇怪,它是如此難以找出如何解決JSTL的配置問題得到這個工作)。現在

的主要問題是,當我嘗試登錄使用基於表單的認證,我當登錄表單提交給「j_spring_security_check」得到一個HTTP 404錯誤。

我已經根據spring安全性文檔在web.xml文件中設置了過濾器,但看起來tomcat沒有按預期調用它。

我希望有人可以在這裏分享自己的經驗,我當然缺少我的配置一些基本的東西。

謝謝。

更新:雖然根據這裏的回覆進行了故障排除,但我最終做的一件事是下載tomcat 6.0.18的全新副本,並確保我在WEB中有jstl-1.2.jar文件-INF/lib目錄。有趣的是,現在應用程序似乎工作正常。

我有點爲難,但現在我會盡力追查安裝這是造成錯誤兩個tomcat的區別,並在這裏發表一個進一步的更新。

感謝您對這些傢伙的迴應。

回答

1

如果你使用Maven的時候,你需要爲JSTL:

<dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
     <scope>runtime</scope> 
    </dependency> 
1

這太很難說什麼是錯的,根據你提供的信息。

用於在Tomcat 5.x和更早版本中共同/共同使用的共享共享庫;現在它們屬於/ lib目錄。

就個人而言,我更喜歡把儘可能多的,因爲我可以在我的部署的WEB-INF/lib中,因爲我不希望有依賴於具有服務器以特定的方式成立。如果類加載器可以在我的WAR文件中找到它需要的所有JAR,我很高興。

雙方的Tomcat 5.x和6.x使用JSTL 1.2 JAR,所以這是常見的。這是改變的位置。我建議使用WEB-INF/lib中需要的JAR來構建WAR文件。

如果你使用Spring Security的前身爲ACEGI模塊,請確保您有這些JAR文件可用了。

HTTP 404 - 確定它不只是一個部署或URL問題?

嘗試通過將配置文件註釋掉並重新啓動來關閉Spring安全性。如果一切順利的話,你的應用程序應該會正確無誤。然後你就會知道你必須專心。如果不是,您可以繼續搜索還有什麼是錯誤的。

0

我同意瓦特/ duffymo,沒有足夠的信息。請嘗試在您的應用程序中開啓詳細日誌記錄,並查看日誌中是否有任何明顯的內容。