WAR 프로젝트에있을 때 제대로 작동하는 JSF 2.2 구성 요소가 있습니다. 클래스 파일을 WEB-INF/classes/com/test 폴더에 넣습니다.FacesException : 식 오류 : 명명 된 개체 : WEB-INF/libs/
그러나 클래스가 다른 Maven 프로젝트의 JAR 파일로 패키지화되어 있고 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>