java.lang.NoClassDefFoundError:javax.servlet.ServletInputStream在websphere上部署错误

问题描述:

我已经创建了使用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

确保您的WEB-INF/lib中没有servlet-api.jar。如果它存在,它可能会干扰已存在于websphere中的一个技巧类加载器

+0

我不认为它默认与应用程序捆绑在一起。除了检查netbeans中的库之外,是否还有其他方法可以知道它是否成组,因为我检查了它并且它没有与它捆绑在一起。 –

+0

检查您的部署文件夹 – Bozho

+0

我已将servlet-api.jar与该项目捆绑在一起并重新部署到websphere,但我仍然有此错误。还有什么想法? –

您需要将servlet-api.jar文件捆绑到您的应用程序中。

+4

它已经与应用程序服务器捆绑在一起。您必须不要将它与应用程序捆绑在一起 – Bozho

+0

@Bozho,我同意你的看法,但是在工作JBoss时发现了类似的问题。作为一项解决方案,我只是将这个jar文件捆绑在war中,并且它可以工作。但我仍然很想知道它为什么会发生。 – Santosh

+1

如果jar未与应用服务器捆绑在一起,那么应用服务器不符合规范.. :) – Bozho

我做了下面这为我工作的步骤:在控制台

  1. 转到服务器(这是立场 - 独自在我的情况下,即没有DMGR)
  2. 更改的类加载器方针,以“多” 。
+0

这是一种解决方法,而不是解决方案。您仍然需要从Web应用程序的“/ WEB-INF/lib”中删除容器特定的库。 – BalusC

我想我对这个问题的回答还不算太迟。 HttpServlet类可以在j2ee.jar中找到。 WAS不会将它捆绑在servlet-api.jar中,这是Tomcat执行它的方式。