J2EE 5 및 Tomcat 6에서 Geronimo를 사용하며 JSF를 사용하여 하나의 간단한 페이지를 만들려고합니다. 나는 myfaces_core.tld
과 myfaces_html.tld
의 태그 라이브러리 파일을 WEB-INF
에 넣었지만 작동은하지만 Windows에서만 가능하다. 리눅스에서는 IOException
을 으로, 알려지지 않은 이유는이었습니다. 두 개의 태그 라이브러리 파일을 제거하면 배포가 가능해졌습니다. 그런데 브라우저에서 페이지를 열 때 오류가 발생했습니다. JSP 파일의 헤더에 지정된 WEB-INF/myfaces_html.tld
파일이 누락되었습니다. MyFaces의 예에서는 MyFaces TLD가 아니라 일반적인 Sun Java TLD가 사용됩니다. URI를 WEB-INF/myfaces_html.tld
으로 덮어 썼습니다. 이제는 오류가 발생합니다. 절대 URI : http://java.sun.com/jsf/html은이 응용 프로그램과 함께 배포 된 jar 파일 또는 web.xml에서 확인할 수 없습니다..JSF 초급 사용자 분실 : Linux, Geronimo 및 태그 라이브러리
나는 이제 졌어. 필자는 JSF 컴포넌트를 사용하기 위해 태그 라이브러리 설명 파일을 WAR에 넣지 않아야합니까? 이 파일들은 Geronimo Container의 MyFaces JAR 파일에 이미 포함되어 있습니다. 컨테이너는 플랫폼에 관계없이 동일한 동작을 가져야하거나 그렇지 않아도됩니까? 플랫폼에 독립적 인 간단한 응용 프로그램을 만들려면 어떻게해야합니까?
Linux의 JSF-servlet에 문제가있는 것 같습니다. Windows에서 작동합니다. Geronimo는 이미 JSF 구현 (MyFaces)을 포함하고있다. TLD 파일을 제거하려면'MyF-INF' 디렉토리를 만들고 (MyFaces tutorial) JSF 표준에 따라 HTML 및 Core 라이브러리의 URI를 업데이트하십시오 (URI를'http://java.sun.com/jsf/ html'과'http : // java.sun.com/jsf/html')은 약간의 수정만으로 효과가 없습니다. 그것은 어쨌든 리눅스에서가 아니라 Windows에서 작동합니다. _unknown reason_은 Linux의 Geronimo 컨테이너, JSF 서블릿의 어딘가에있을 가능성이 큽니다. –
컨테이너가 이미 JSF와 함께 제공되는 경우 실제로는 webapp에 포함시키지 않아야합니다. 그렇지 않으면 컨테이너에 번들로 제공된 JSF를로드하지 않도록 컨테이너에 지시하는 컨테이너 별 설정 파일 또는 컨텍스트 매개 변수를 지정해야합니다 라이브러리 (이것은 적어도 JBoss AS, Glassfish 등을위한 것입니다). – BalusC