【发布时间】:2013-08-28 23:19:09
【问题描述】:
我有一个我想不通的问题。
上下文:
是 7.0.0.19 版本(没有 preCompileJsp) 引起:java.lang.ClassLoader.defineClassImpl(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader) 的 java.lang.NoClassDefFoundError: org/apache/jsp/_xxx (错误名称:com/ibm/_jsp/_xxx) .java:275) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:212) 在 com.ibm.ws.jsp.webcontainerext.JSPExtensionClassLoader.defClass(JSPExtensionClassLoader.java:181) 在 com.ibm.ws.jsp。 webcontainerext.JSPExtensionClassLoader._loadClass(JSPExtensionClassLoader.java:133)
它是唯一有问题的 JSP,并且仅在特定环境中(在具有相同配置的其他环境中没有问题)xxx.class 很好地存在于我的 profile/tmp 目录中,而其他 jsp 在同一目录中(都没有问题)并且文件系统未满。
测试
我在同一个目录下复制了 xxx.jsp 到 xxxNew.jsp 我可以毫无问题地访问xxxNew.jsp(所以没有编码问题) 所以我做了一个从 xxx.jsp 到 xxx1.jsp 的 mv 并且访问新命名的 jsp 没有问题 我删除了tmp目录下的xxx.class 我将 mv 返回到第一个名称(xxx.jsp),但仍然在 tmp 目录中使用新的 xxx.class 得到错误。 websphere 中的任何地方是否有可以解释这一点的类缓存? (在 war 模块中找不到 dynacache 的 cachespec.xml)。
为什么 Websphere 尝试从 org.apache.jsp 包而不是 com.ibm._jsp 中查找类? (AS 如何选择从 URL 到类的映射?)
谢谢!
【问题讨论】:
标签: java jakarta-ee websphere websphere-7