2012-05-28 2 views
11

Mojarra 버전 2.1.8을 사용하도록 JSF 응용 프로그램을 업데이트하고 싶습니다. 이 줄을 WAR 패키지의 POM 파일에 추가했습니다.GlassFish에서 Mojarra 버전을 업데이트하는 방법

<dependency> 
    <groupId>org.glassfish</groupId> 
    <artifactId>javax.faces</artifactId> 
    <version>2.1.8</version> 
</dependency> 

또한 JSF 리포지토리도 추가했습니다. 패키지는 Mojarra 버전 2.1.8과 함께 성공적으로 빌드됩니다. 그러나 GlassFish 로그를 열면 Mojarra 버전 2.1.6이 배포 된 것을 볼 수 있습니다. 내가 뭘 놓치고 있니? GlassFish 서버를 구성해야합니까?

답변

17

GlassFish는 기본적으로 webapp에 번들 된 클래스보다 우선적으로 클래스 로딩 우선 순위를 갖는 JSF 번들과 함께 제공됩니다. 기본적으로 GlassFish에 webapp 번들로 제공된 JSF를 대신 사용해야한다고 말할 필요가 있습니다.

을 편집하여 웹 애플리케이션의 /WEB-INF/glassfish-web.xml (또는 /WEB-INF/sun-web.xml 첫 번째 GF3 버전 중 하나를 사용하는 경우) 다음 두 가지 항목을 추가 :

<class-loader delegate="false" /> 
<property name="useBundledJsf" value="true" /> 

글래스 피쉬는 대신 JSF를 번들로 제공되는 웹 애플리케이션을 사용합니다.

GlassFish에 대한 완전한 관리 권한이있는 경우 /glassfish/modules 디렉토리에 복사하여 이전 버전을 대체하여 모든 웹 응용 프로그램에 적용되도록 할 수도 있습니다.

+0

나는이 문제를 해결했다. JSF 2.l.8 jar를 다운로드하고 Glassfish의 모듈을 교체했습니다. – user1285928

+0

"JSF 2.1.8.jar"로 참조 된 이슈의 링크 및/또는 메이븐 식별자를 공유해 주실 수 있습니까? 위의 해결책이 완전히 작동하지 않습니다 (일부 문제는 해결되었지만 일부는 남아 있습니다). –

+0

@Karl : [JSF 홈페이지] (https://javaserverfaces.java.net) -> [다운로드] (https://javaserverfaces.java.net/nonav/2.2/download.html) -> [Maven] (https://maven.java.net/content/repositories/releases/org/glassfish/javax.faces/) – BalusC