【发布时间】:2014-11-21 17:24:28
【问题描述】:
我有一个 JSF 2.2 组件,它在 WAR 项目中运行良好。 所以类文件被放入文件夹 WEB-INF/classes/com/test
但是当类被打包成一个 JAR 文件(来自另一个 Maven 项目)并且位于文件夹 WEB-INF/lib/example1.jar 中时,我会收到以下错误。
Caused by: javax.faces.FacesException: Expression Error: Named Object: HtmlHelloWorld not found.
at com.sun.faces.application.ApplicationImpl.createComponentApplyAnnotations(ApplicationImpl.java:1933)
at com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:1168)
谁能解释我为什么会得到这个或如何解决它。
这是我的代码,并不是我认为它对问题有任何影响。
@FacesComponent(value = "HtmlHelloWorld")
public class HtmlHelloWorld extends UIComponentBase {
@Override
public String getFamily() {
return null;
}
@Override
public void encodeAll(FacesContext context) throws IOException {
}
}
我还应该补充一点,我在 JAR 的根目录中有一个“faces-config.xml”。不过这没什么区别。
faces-config.xml
<?xml version='1.0' encoding='UTF-8'?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<application>
<resource-bundle>
<base-name>i18n</base-name>
<var>bundle</var>
</resource-bundle>
<locale-config>
<default-locale>en</default-locale>
<supported-locale>en</supported-locale>
<supported-locale>fr</supported-locale>
<supported-locale>de</supported-locale>
</locale-config>
</application>
</faces-config>
【问题讨论】:
标签: java maven jsf primefaces jsf-2.2