2012-09-13 100 views
2

Possible Duplicate:
org.apache.jasper.el.ELContextImpl cannot be cast to org.apache.jasper.runtime.ELContextImpl罐子碼頭

衝突的,我從Eclipse在戰爭文件導出一個Web服務項目(包括JSP頁面),並在碼頭8.1.5部署它。它在我的機器上正常工作。但另一臺機器(在Windows Server 2003)上部署在碼頭8.1.3同一戰文件後,它提供了HTTP錯誤500和下面的異常,當我去到index.jsp頁面:

org.apache.jasper.el.ELContextImpl cannot be cast to org.apache.jasper.runtime.ELContextImpl

全跟蹤和更多的細節在this question兩天前我發佈。而在這兩個截屏中提供的一切,我有WEB_INF/lib罐子:環視互聯網的解決方案

enter image description here enter image description here

2天導致明知問題是由罐之間的衝突引起的裝在戰爭檔案和其他罐子裏(我猜是碼頭罐子)。

問題是:如何找出哪個罐子引起問題?我嘗試瀏覽這些罐子的內容,尋找類ElContextImpl,但沒有找到任何東西? 有什麼想法?


編輯:

我試圖複製我的本地整體碼頭8.1.5到服務器和statrted碼頭從那裏..但仍然沒有成功。

+0

您是否嘗試用jetty重建您的戰爭 - * - 8.1.3依賴關係insteead的jetty - * - 8.1.5依賴關係,然後在jetty 8.1.3上重新部署它? – Stephan

+0

@Stephan現在就來試試吧..但是它在本地機器上的jetty 8.1.3(與服務器上的版本相同)上部署了戰爭,並且它正常工作。但仍然不在服務器上。 – Sami

+0

@Stephan只是試了一下..仍然是一樣的例外 – Sami

回答

1

您的WAR文件包含一些不必要的JAR,如servlet-api-2.4.jar,它們應該是Jetty安裝的一部分(可能是另一個版本)。

乍一看,你應該刪除所有jetty-*.jar,servlet-api-2.4.jar,javax.servlet.*.jar。如果您從8.1.5 Jetty安裝中獲取了這些信息,則可能會導致8.1.3安裝衝突。

+0

我剛剛在本地執行了這個操作,並且我的機器上的部署(它曾經工作)現在已經被破壞,並且它提供了很多有關從jetty中丟失類的例外情況,例如:java.lang.NoClassDefFoundError:org/eclipse/jetty/util/component/AbstractLifeCycle' ,我在瀏覽器上得到HTTP ERROR 503。 – Sami

+0

也許你應該重新啓動一個新的Jetty安裝。在我的安裝中,這個類包含在'lib/jetty-util-8.1.5.v20120716.jar'中。如果你正確啓動Jetty,那麼這個類應該存在。 – vanje

+0

我可以在碼頭的'lib /'文件夾中看到該庫。我首先進入碼頭目錄並輸入'java -jar start.jar'。這個命令有什麼問題嗎? – Sami