2011-09-08 49 views
1

我已經創建了使用glassfish作爲我的服務器的neatbeans澤西web服務,一切正常,但我有問題試圖在websphere 7上安裝相同的應用程序。java.lang.NoClassDefFoundError:javax.servlet.ServletInputStream在websphere上部署錯誤

我得到這個錯誤「錯誤500處理請求時發生錯誤:/ibm/console/upload.do消息:java.lang.NoClassDefFoundError:javax.servlet.ServletInputStream」。

我甚至嘗試創建一個簡單的Web應用程序,並試圖部署在websphere上,再次,我有同樣的錯誤。

有想法的人嗎?我非常需要你的幫助。在此先感謝

+0

您是否檢查了應用程序服務器的FFDC日誌?它應該提供更多相關信息來調試您的問題。 – Renan

回答

5

確保您的WEB-INF/lib中沒有servlet-api.jar。如果它存在,它可能會干擾已存在於websphere中的一個技巧類加載器

+0

我不認爲它默認與應用程序捆綁在一起。除了檢查netbeans中的庫之外,是否還有其他方法可以知道它是否成組,因爲我檢查了它並且它沒有與它捆綁在一起。 –

+0

檢查您的部署文件夾 – Bozho

+0

我已將servlet-api.jar與該項目捆綁在一起並重新部署到websphere,但我仍然有此錯誤。還有什麼想法? –

-2

您需要將servlet-api.jar文件捆綁到您的應用程序中。

+4

它已經與應用程序服務器捆綁在一起。您必須不要將它與應用程序捆綁在一起 – Bozho

+0

@Bozho,我同意你的看法,但是在工作JBoss時發現了類似的問題。作爲一項解決方案,我只是將這個jar文件捆綁在war中,並且它可以工作。但我仍然很想知道它爲什麼會發生。 – Santosh

+1

如果jar未與應用服務器捆綁在一起,那麼應用服務器不符合規範.. :) – Bozho

1

我做了下面這爲我工作的步驟:在控制檯

  1. 轉到服務器(這是立場 - 獨自在我的情況下,即沒有DMGR)
  2. 更改的類加載器方針,以「多」 。
+0

這是一種解決方法,而不是解決方案。您仍然需要從Web應用程序的「/ WEB-INF/lib」中刪除容器特定的庫。 – BalusC

1

我想我對這個問題的回答還不算太遲。 HttpServlet類可以在j2ee.jar中找到。 WAS不會將它捆綁在servlet-api.jar中,這是Tomcat執行它的方式。