我在weblogic 10.3中创建了一个jsf 1.1 portlet,但在一个场景中我需要提供库帮助。我刚刚在我的门户应用程序中删除了jar文件并在WEB-INF中的lib文件夹中支持了这些文件,但是当我点击url时,它给出了NoClassdef的错误..... tomahawk jar中的类异常并且jsp编译失败。< / p>
我是weblogic的新手,如果someoe可以提出我可能做错的事情,我将非常感激。
设置是整个应用程序如同耳朵。 Ear包含app-inf和weblogic特定的xml文件,主要的门户Web应用程序在这个耳朵里面就像战争一样。我正在使用weblogic门户10.3附带的研讨会。那么这个项目是从weblogic门户网站9.3迁移过来的。
注意:我不想在域/ lib中使用这个jar,当我这样做时,我不知道为什么它加载了我的应用程序并且所有在servlet启动中定义的类与load-on-startups在时间之前被解雇了并且没有这些类是由服务器找到的。
目前使用的Jsf库处于共享模式。
答案 0 :(得分: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.
在此jar中检查该类javax/faces/webapp/UIComponentELTag
。
我仍然认为你应该使用weblogic.xml
设置强制WEB-INF / lib类优先加载到server / lib中
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
答案 1 :(得分:0)
作为weblogic和基础设施的新手,我搞砸了不同的版本。弄清楚这只是因为不兼容的罐子。