java.lang.NoClassDefFoundError : org/apache/jsp/_xxx wrong name: com/ibm/_jsp/_xxx

标签 java jsp jakarta-ee websphere-7

我有一个无法解决的问题。

上下文:

  • 是 7.0.0.19 版本(没有 preCompileJsp)

Caused by: java.lang.NoClassDefFoundError: org/apache/jsp/_xxx (wrong name: 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 时仍然出现错误。

websphere 中是否有类缓存可以解释这一点? (在war模块中没有找到dynacache的cachespec.xml)。

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

谢谢!

最佳答案

是否选择了 Websphere JRE?

在 eclipse 中:

右键单击您的项目“属性”->“Jave 构建路径”-> 选择“库”选项卡。如果未选择任何 Websphere JRE 条目。选择 JRE System Libary 条目并单击编辑,然后选择 Wepshere JRE..

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

关于java.lang.NoClassDefFoundError : org/apache/jsp/_xxx wrong name: com/ibm/_jsp/_xxx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13566029/

相关文章:

java - 彩票程序忽略功能

java - 无法显示日历正确的日期

java - 生成 EAR 时未添加项目实用程序 Jar

java - 如何在IP地址上运行Jboss 4.2.1?

java - Spring 看不到 servlet-context 和 contextConfigLocation bean 之间的 bean

java - 如何在给定 SOAP WSDL 操作的情况下创建 WSDL 文件

java - 模拟resttemplate来测试作为restFul客户端的服务

javascript - 如何在渲染前将文本字段的值设置为jsp中的 session 属性?

java - 如何捕获缺少 JSP 文件的异常

java - 根据某些属性对 ArrayList 进行排序