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

java.lang.NoClassDefFoundError:javax.servlet.ServletInputStream在websphere上部署时出错,java,servlets,websphere,jersey,websphere-7,Java,Servlets,Websphere,Jersey,Websphere 7,我已经用neatbeans创建了一个jersey web服务,使用glassfish作为我的服务器,一切都很好,但是我在尝试在WebSphere7上安装相同的应用程序时遇到了问题 我得到这个错误“error 500处理请求时出错:/ibm/console/upload.do消息:java.lang.NoClassDefFoundError:javax.servlet.ServletiInputStream” 我甚至尝试创建一个简单的web应用程序,并尝试在websphere上部署,同样,我也有同

我已经用neatbeans创建了一个jersey web服务,使用glassfish作为我的服务器,一切都很好,但是我在尝试在WebSphere7上安装相同的应用程序时遇到了问题

我得到这个错误“error 500处理请求时出错:/ibm/console/upload.do消息:java.lang.NoClassDefFoundError:javax.servlet.ServletiInputStream”

我甚至尝试创建一个简单的web应用程序,并尝试在websphere上部署,同样,我也有同样的错误


有人有想法吗?我非常需要你的帮助,你会的。提前感谢

确保您的WEB-INF/lib中没有servlet-api.jar。如果它在那里,它可能会干扰websphere中已经存在的类加载器,请确保您的WEB-INF/lib中没有servlet-api.jar。如果它在那里,它可能会干扰websphere中已经存在的一个类加载器技巧。您需要在应用程序中绑定servlet-api.jar文件。

您需要在应用程序中绑定servlet-api.jar文件。

我做了以下步骤,这些步骤对我来说很有效:

  • 转到控制台中的服务器(在我的情况下是独立的,即没有DMGR)
  • 将类加载器策略更改为“多个”

  • 我做了以下对我有用的步骤:

  • 转到控制台中的服务器(在我的情况下是独立的,即没有DMGR)
  • 将类加载器策略更改为“多个”


  • 我想我现在回答这个问题还不算晚。HttpServlet类可以在j2ee.jar中找到。WAS没有像Tomcat那样将它捆绑在servlet-api.jar中。

    我想我现在回答这个问题还不算晚。HttpServlet类可以在j2ee.jar中找到。WAS没有像Tomcat那样将其绑定到servlet-api.jar中。

    它已经与应用服务器绑定。你不可以把它和电脑捆绑在一起application@Bozho,我同意你的看法,但我在使用JBoss时发现了类似的问题。作为一种解决方法,我只是在war中捆绑jar文件,它就可以工作了。但是我仍然很好奇为什么会发生这种情况。如果jar没有与应用服务器捆绑,那么应用服务器就不符合规范:)这是最不可能的:)。但是我在这里看到一些脏的类加载问题。我在哪里找到servlet-api.jar文件?它已经与应用服务器捆绑在一起了。你不可以把它和电脑捆绑在一起application@Bozho,我同意你的看法,但我在使用JBoss时发现了类似的问题。作为一种解决方法,我只是在war中捆绑jar文件,它就可以工作了。但是我仍然很好奇为什么会发生这种情况。如果jar没有与应用服务器捆绑,那么应用服务器就不符合规范:)这是最不可能的:)。但是我在这里看到了一些脏的类加载问题。我在哪里找到servlet-api.jar文件?我不认为默认情况下它与应用程序捆绑在一起。除了检查netbeans中的库,是否还有其他方法可以知道它是否被捆绑在一起,因为我检查了它,但它没有捆绑在一起。我已经将servlet-api.jar与项目捆绑在一起,并重新部署到websphere,但仍然存在此错误。还有其他想法吗?我已经删除了它,但仍然有相同的错误。您认为这是版本问题吗?ServletInputStream已经存在很长时间了,所以它不应该存在。这看起来像是一个类加载器问题。你能试着将它部署到一个单独的tomcat实例吗?但是你在应用程序中部署了哪些其他JAR?你能把它们都列出来吗?如果您正在部署已经提供的任何内容的副本,则可能会混淆类加载器。最糟糕的情况是,你可以尝试切换到parent_last classloading,但如果你可以删除任何重复的类,那将更安全、更简单。我认为默认情况下它不会与应用捆绑在一起。除了检查netbeans中的库,是否还有其他方法可以知道它是否被捆绑在一起,因为我检查了它,但它没有捆绑在一起。我已经将servlet-api.jar与项目捆绑在一起,并重新部署到websphere,但仍然存在此错误。还有其他想法吗?我已经删除了它,但仍然有相同的错误。您认为这是版本问题吗?ServletInputStream已经存在很长时间了,所以它不应该存在。这看起来像是一个类加载器问题。你能试着将它部署到一个单独的tomcat实例吗?但是你在应用程序中部署了哪些其他JAR?你能把它们都列出来吗?如果您正在部署已经提供的任何内容的副本,则可能会混淆类加载器。最糟糕的情况是,您可以尝试切换到父类加载,但如果您可以删除任何重复的类,这将更加安全和简单。您是否检查了应用程序服务器的FFDC日志?它应该在调试您的问题时提供更多相关信息。您是否检查了应用程序服务器的FFDC日志?它应该在调试您的问题时提供更多相关信息。这是一种解决方法,而不是解决方案。您仍然需要从webapp的
    /WEB-INF/lib
    中删除特定于容器的库。这是一种解决方法,而不是解决方案。您仍然需要从webapp的
    /WEB-INF/lib
    中删除特定于容器的库。