我已经在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服务器相同的类路径?
发布于 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类,而不是使用
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor> 发布于 2012-06-14 01:55:26
当您试图加载一个试图加载另一个不在类路径上的类的类时,就会发生这种情况。找出ColorConverter需要哪些类,并确保在类路径中包含这些类。
发布于 2012-06-20 15:56:48
首先:您要在服务器上部署什么?ADF jar或WAR文件。在您的情况下-假设您没有在应用服务器上安装任何依赖jars。您应该部署一个WAR文件。
在您的视图项目上-右键单击并选择project Properties。然后转到Deployment并编辑部署配置文件(如果没有配置文件,则创建一个)。确保选中了“包含来自其他项目的库”复选框。(它在库依赖项选项卡中)。
另外:您可能会在here中找到一些有用的信息。
希望这能有所帮助。迈克尔
https://stackoverflow.com/questions/11020569
复制相似问题