У меня есть компонент JSF 2.2, который отлично работает, когда находится в проекте WAR. Таким образом, файл класса попадает в папку WEB-INF/classes/com/testFacesException: Expression Error: Именованный объект: xxx не найден, когда находится в WEB-INF/libs/
Но когда класс упакован в файл 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 {
}
}
Я также должен добавить, что у меня есть «faces-config.xml», расположенный в корне JAR. Однако это не имеет никакого значения.
лица-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>