首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决NoClassDefFoundError问题?

如何解决NoClassDefFoundError问题?
EN

Stack Overflow用户
提问于 2012-06-14 01:53:40
回答 4查看 19.7K关注 0票数 2

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

我得到以下错误:

java.lang.NoClassDefFoundError: Could not initialize class org.apache.myfaces.trinidadinternal.convert.ColorConverter at....

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

有没有人能说出问题确实出在类路径上?如何将jdeveloper设置为部署与weblogic服务器相同的类路径?

EN

回答 4

Stack Overflow用户

发布于 2012-06-14 16:31:08

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

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

您能搜索在运行时服务器环境和您自己的webapp库中找到多少这样的jars吗?

在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.war下找到了Jar

我认为可以使用weblogic.xml设置强制加载WEB-INF/lib类,而不是使用

代码语言:javascript
复制
    <container-descriptor>     
<prefer-web-inf-classes>true</prefer-web-inf-classes>   
</container-descriptor> 
票数 3
EN

Stack Overflow用户

发布于 2012-06-14 01:55:26

当您试图加载一个试图加载另一个不在类路径上的类的类时,就会发生这种情况。找出ColorConverter需要哪些类,并确保在类路径中包含这些类。

票数 2
EN

Stack Overflow用户

发布于 2012-06-20 15:56:48

首先:您要在服务器上部署什么?ADF jar或WAR文件。在您的情况下-假设您没有在应用服务器上安装任何依赖jars。您应该部署一个WAR文件。

在您的视图项目上-右键单击并选择project Properties。然后转到Deployment并编辑部署配置文件(如果没有配置文件,则创建一个)。确保选中了“包含来自其他项目的库”复选框。(它在库依赖项选项卡中)。

另外:您可能会在here中找到一些有用的信息。

希望这能有所帮助。迈克尔

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11020569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档