java - 我该如何解决 NoClassDefFoundError?

标签 java oracle weblogic noclassdeffounderror jdeveloper

我已在 Oracle Linux 上安装了 Oracle Weblogic 11g,并尝试使用 jdeveloper 11g 完成 Oracle 的 ADF 教程之一。当我运行我的项目时,它编译成功,没有错误。它开始将应用程序部署到 weblogic 服务器,然后打开我的默认 Internet 浏览器。但随后出现错误“500 Internal server error”。

我收到以下错误:

java.lang.NoClassDefFoundError: 无法初始化类 org.apache.myfaces.trinidadinternal.convert.ColorConverter at....

我在互联网上研究了这个问题,我也四处询问,常见的答案是类路径有问题。可能在 jdeveloper 中使用的库与在 weblogic 中使用的库不同,然后部署项目。

谁能确定问题是否出在类路径上?? 我如何设置 jdeveloper 以部署它用于 weblogic 服务器的相同类路径?

最佳答案

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

您的问题可能是在部署服务器时发现类的多个版本。我注意到类 org.apache.myfaces.trinidadinternal.convert.ColorConvertertrinidad-impl.jar

中找到

您能否搜索在运行时服务器环境以及您自己的 webapp 库中找到多少这样的 jar?

在 Windows 上,Jdev 内置服务器在此文件夹中运行

C:\Users\<...>\AppData\Roaming\JDeveloper\system11.1.1.4.37.59.23 或类似内容

您需要在您的 webapp/WEB-INF/lib 中使用它,而不是在其他区域中。

在本地,我在 C:\Users\<...>\AppData\Roaming\JDeveloper\system11.1.1.4.37.59.23\o.j2ee.wlLibs\jsp\Trinidad-Components1.2 下找到了 Jar。 war

我认为您可以使用 weblogic.xml 设置强制加载 WEB-INF/lib 类,优先于 server/lib 中的类

    <container-descriptor>     
<prefer-web-inf-classes>true</prefer-web-inf-classes>   
</container-descriptor> 

关于java - 我该如何解决 NoClassDefFoundError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11020569/

相关文章:

java - 如何取消 Perforce P4V 中从本地工作区意外删除的文件的删除标记

sql - 两个 SELECT-Statement 单独工作但不一起工作

sql - 时间戳和系统日期

php - 根据各种过滤条件匹配特定广告

java - 尝试在 JLayeredPane 中重叠两个相同大小的 JPanel

java - 为什么在实现接口(interface)的方法内部分配实例变量在从同一类的另一个本地方法调用它时不起作用?

java - Weblogic - 如何关闭服务器进行维护?

weblogic - 静默运行 WLST 解释器

java - 更改旋转窗口的底层背景颜色

c# - 无法加载 oramts.dll