java.lang.NoClassDefFoundError:org / apache / jsp / _xxx错误名称:com / ibm / _jsp / _xxx

时间:2012-11-26 13:40:10

标签: java jsp java-ee websphere-7

我有一个我无法弄清楚的问题。

上下文:

  • 是7.0.0.19版本(没有preCompileJsp)
  

引起:java.lang.NoClassDefFoundError:org / apache / jsp / _xxx(错误的名称:com / ibm / _jsp / _xxx)           at java.lang.ClassLoader.defineClassImpl(Native Method)           at java.lang.ClassLoader.defineClass(ClassLoader.java:275)           at java.lang.ClassLoader.defineClass(ClassLoader.java:212)           at com.ibm.ws.jsp.webcontainerext.JSPExtensionClassLoader.defClass(JSPExtensionClassLoader.java:181)           at com.ibm.ws.jsp.webcontainerext.JSPExtensionClassLoader._loadClass(JSPExtensionClassLoader.java:133)

它是唯一提供问题的JSP,仅在特定环境中(在具有相同配置的其他环境中没有问题) xxx.class很好地存在于我的profile / tmp目录中,而其他jsp位于同一目录中(这些都没有问题)并且文件系统未满。

测试

  1. 我在同一目录中将xxx.jsp复制到xxxNew.jsp
  2. 我可以毫无问题地访问xxxNew.jsp(因此没有编码问题)
  3. 所以我从xxx.jsp到xxx1.jsp做了一个mv,没有问题可以访问jsp新命名的
  4. 我删除了tmp目录中的xxx.class
  5. 我将mv恢复为第一个名称(xxx.jsp),但仍然在tmp目录中使用新的xxx.class获取错误。
  6. 在websphere的任何地方都有一个类缓存可以解释这个吗? (在war模块中找不到dynacache的cachespec.xml)。

    为什么Websphere尝试从org.apache.jsp包中找到一个类而不是从com.ibm._jsp中找到一个类? (AS如何选择从URL到类的映射?)

    Thxs!

2 个答案:

答案 0 :(得分:0)

是否选择了Websphere JRE?

在Eclipse中:

右键单击您的项目Properties-> Jave Build Path - >选择Libaries选项卡。如果未选择任何Websphere JRE条目。选择JRE System Libary条目并单击编辑,然后选择Wepshere JRE ..

这解决了我的类似问题..希望这会有所帮助。

答案 1 :(得分:0)

通过重新部署(supress and deploy)应用程序解决了这个问题。