1

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

语境 :

  • 是 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 在同一目录中(都给出没问题)并且文件系统未满。

测试

  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 到类的映射?)

谢谢!

4

2 回答 2

0

是否选择了 Websphere JRE?

在 Eclipse 中:

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

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

于 2012-11-27T12:34:07.347 回答
0

通过重新部署(抑制和部署)应用程序解决了这个问题。

于 2013-12-04T14:51:59.963 回答