0

我在 weblogic 10.3 中制作了一个 jsf 1.1 portlet,但在一种情况下,我需要 tomahawk 库的帮助。我刚刚在我的门户应用程序的 WEB-INF 中的 lib 文件夹中删除了 jar 文件和支持文件,但是当我点击 url 时,它给了我 NoClassdef 错误..... tomahawk jar 中的类和 jsp 编译失败。

我是 weblogic 的新手,如果有人能建议我可能做错了什么,我将不胜感激。

设置是整个应用程序都像耳朵一样运行。Ear 包含 app-inf 和 weblogic 特定的 xml 文件,主门户 Web 应用程序在此耳内进行战争。我正在使用 weblogic 门户 10.3 附带的研讨会。这个项目是从 weblogic 门户 9.3 迁移而来的。

注意:我不想但是这个 jar 在 domain/lib 中,当我这样做时,我不知道为什么它加载了我的应用程序,并且在 servlet 启动中定义的所有类都在加载时被提前触发,并且没有任何类被服务器发现。

当前使用的 Jsf 库处于共享模式。

4

2 回答 2

1

java.lang.NoClassDefFoundError表示类路径中类的运行时版本与编译时不同。

注意:它不是ClassNotFoundException。

您的问题实际上是找到了该类的多个版本。

此外,JSF 1.2 库与 Weblogic 服务器捆绑在一起,因此如果再次将这些类之一添加到 WEB-INF/lib 中,可能会导致此异常。哪个是引发错误的确切类,您在 WEB-INF 和 domain/lib 中是否有多个版本的 Tomahawk?

删除额外的并仅在 WEB-INF/lib 中保留一个。

更新:

文档指出_Separate JSF 1.2 and JSTL 1.2 JAR files and implementation JAR files are also provided in the WL_HOME/server/lib/api.jar file.

检查javax/faces/webapp/UIComponentELTag这个 jar 中的那个类。

我仍然认为您应该使用该weblogic.xml设置来强制加载 WEB-INF/lib 类,而不是在 server/lib 中加载

<container-descriptor>
    <prefer-web-inf-classes>true</prefer-web-inf-classes>
  </container-descriptor>
于 2010-10-18T08:19:29.780 回答
0

作为 weblogic 和基础设施的新手,我搞砸了不同的版本。发现这只是因为不兼容的罐子。

于 2010-10-19T08:30:01.850 回答