问题描述
Oracle Jdeveloper(版本11.1.1.6.0)正在构建ADF应用程序,该应用程序使用Apache FOP库生成PDF文件。我的应用程序运行本地Web服务器。但是在生产服务器中部署时,下面显示NoClassDefFoundError异常,并且无法生成PDF文件。
异常输出:
<code>
javax.el.ELException: java.lang.NoClassDefFoundError: org/apache/avalon/framework/configuration/ConfigurationException
at com.sun.el.parser.AstValue.invoke(AstValue.java:191)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
...
...
Caused by: java.lang.NoClassDefFoundError: org/apache/avalon/framework/configuration/ConfigurationException
at org.apache.fop.apps.FopFactory.<init>(FopFactory.java:153)
at org.apache.fop.apps.FopFactory.newInstance(FopFactory.java:177)
...
...
Caused by: java.lang.classNotFoundException: org.apache.avalon.framework.configuration.ConfigurationException
...
...
</code>
解决方法
由ClassNoFoundException引起的NoClassDefFoundError指向服务器上缺少的库。您是否检查了部署工件(EAR)是否包含所有必需的FOP罐子? 如果所有jar都是EAR的一部分(或者更好的是EAR内部的WAR),则需要先让Weblogic Server从部署中加载jar,然后再查看服务器上已有的jar。有关更多信息,请参见https://tompeez.wordpress.com/2015/06/06/pitfalls-when-using-newer-versioned-libraries-than-shipped-with-jdeveloper-or-weblogic-server/。