2014-09-10 68 views
0

我有一個在Websphere服務器(如war和Eclipse Project)上正常工作的應用程序。 通過WAR直接部署在Liberty上也可以正常工作。WAS Liberty未提供圖像,css,js

我試圖通過Eclipse項目將它部署在WAS Liberty 上。沒有控制檯錯誤,但一旦應用程序加載,以下文件都不會加載到網頁中:js,gif,css

因此,頁面看起來失真,大部分功能都丟失。 令人驚訝的是,js文件夾中有一些JSP,並且這些JSP正在加載,所以看起來像文件夾已正確發佈。但是對於所有提到的文件(js等),我在瀏覽器控制檯中收到以下錯誤:500(內部服務器錯誤)。 沒有錯誤,服務器日誌也是乾淨的。

我的設置:WAS Liberty 8.5,RHEL 6.5。 Eclipse Luna,WDT 8.5.5.2。具有Eclipse結構的項目,而不是maven。 我已經試過寬鬆配置和'從工作區'設置

Edit1:我注意到Spring bean沒有正確初始化。在applicationContext.getBean上獲得空指針。

+0

Liberty默認情況下會提供靜態文件,因此它應該可以工作。所以檢查你的html/jsp文件中圖片的鏈接。並嘗試通過在瀏覽器中放置url直接訪問圖像。還要檢查LIBERTY \ usr \ servers \ serverName \ logs文件夾中的messages.log文件。 – Gas 2014-09-10 10:09:50

+0

檢查日誌,沒有有用的錯誤。如果直接複製粘貼瀏覽器上的鏈接,我會得到「null for uri:」 並且在瀏覽器控制檯中出現相同的500錯誤。 – amjava 2014-09-10 10:28:49

+0

你的項目偶然有一個maven結構嗎?或Eclipse的結構? – Gas 2014-09-10 11:29:39

回答

1

好的,發現問題了。

正如我猜測這是有關春季初始化,雖然問題是更多的代碼相關。

由於REST實現的錯誤實現,其中基本路徑被設置爲根應用程序路徑(「/」),其餘API類在應用程序加載時得到實例化,然後調用實例化少數Spring bean的代碼。 但是在這一點上,春天的聽衆並沒有被解僱,因此appcontext是空的。一些基礎應用程序對象正在使用空的bean進行初始化,因此春天的安全上下文和相關類未能正確地提供應用程序內容。 (問題是春天相關的代碼是由另一個團隊創建的,我們只是拿到罐子,因此我甚至無法正確調試它,所以我不知道它究竟在哪裏失敗)

這件事使它Liberty特定的是:如果我們部署爲WAR,則相同的有問題的代碼在Websphere完全配置文件和Weblogic上甚至在Liberty上都可以正常工作。不知道什麼類加載差異導致行爲差異。

感謝所有花時間和努力回覆的人。

相關問題