2013-09-02 4 views
3

GlassFish 서버에 JSF + Primefaces 응용 프로그램을 아무런 문제없이 배포하는 데 사용되었습니다. 최근 NetBeans 버전을 업그레이드했습니다. 그 후 대부분의 응용 프로그램에 문제가 없었습니다. 하지만 배포를하려고 노력 중 하나, 그것은 실패하고이 오류 메시지가 있었다 : 그것은 모든 것 같아GlassFish에서 JSF 응용 프로그램을 배포하는 중 오류가 발생했습니다.

Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.RuntimeException: com.sun.faces.config.ConfigurationException: java.util.concurrent.ExecutionException: com.sun.faces.config.ConfigurationException: Unable to parse document 'jar:file:/opt/glassfish3/glassfish/domains/domain1/applications/[name-of-the-application]/WEB-INF/lib/javax.faces.jar!/META-INF/mojarra_ext.taglib.xml': null. Please see server.log for more details.

프로젝트에 괜찮습니다 (청소하고 잘 구축),하지만 오류가 나타나는 유지 .

  • 넷빈즈 7.3.1
  • JSF 2.2 (인 Mojarra를)
  • 글래스 피쉬 오픈 소스 에디션 3.1.1 (12 빌드) : 이것은 내가 사용 환경입니다.

PS :

SEVERE: Error during deployment : class com.sun.faces.application.annotation.PersistenceUnit Scanner cannot access its superinterface com.sun.faces.application.annotation.Scanner

감사

+0

AFAIK JSF 2.2 응용 프로그램을 GlassFish v4에 배포합니다. Glassfish v3.x에 배포 할 수 있는지 확실하지 않습니다. –

+0

@Luiggi : 가능합니다. Servlet 3.0은 최소한의 요구 사항입니다. GF3은 Servlet 3.0입니다. – BalusC

답변

9

Unable to parse document 'jar:file:/opt/glassfish3/glassfish/domains/domain1/applications/[name-of-the-application]/WEB-INF/lib/javax.faces.jar!/META-INF/mojarra_ext.taglib.xml

태그 라이브러리 파일의 경로가 제안 : 내가 넷빈즈에 번들 글래스 피쉬 3 배포를 수행하려고 할 때이 오류입니다 GlassFish 자체를 업그레이드하는 대신 webapp와 함께 /WEB-INF/lib 안에 JSF 2.2를 선적했습니다. GlassFish 3 자체가 JSF 2.1 구현과 함께 제공되므로 버전 충돌을 피하기 위해로드하지 않도록 지시해야합니다. 당신은 당신이 그렇게하고 있다고 진술하지 않았기 때문에 이것이 당신의 문제의 전체 원인이라고 생각합니다.

글래스 피쉬 자체는 이미 webapp에 번들 된 클래스보다 우선적으로 클래스 로딩 우선 순위를 얻는 JSF 번들과 함께 제공됩니다. 기본적으로 글래스 피시에게 webapp 번들 된 JSF를 대신 사용하도록 지시해야합니다.

달성하려면 /WEB-INF/glassfish-web.xml을 편집하여 다음 두 줄을 추가하십시오.

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

파일을 만들 수없는 경우, 당신은 샘플 XML 파일 here을 찾을 수 있습니다. 위의 두 줄을 <glassfish-web-app> 태그 안에 추가하십시오.

GlassFish는 자체 번들로 제공되는 JSF를로드하지 않고 웹 응용 프로그램 번들 JSF에 의존합니다. 당신은 글래스 피시 완전한 관리 제어가있는 경우

또는, 당신은 또한 이에 JSF 2.2 JSF 2.1에서 업그레이드하기 위해, 기존의 하나를 대체 /glassfish/modules 디렉토리에 JSF 2.2에서 javax.faces.jar 파일을 복사 할 수 있도록 모든 웹 응용 프로그램에 적용됩니다.

+0

Luiggi Mendoza, @BalusC, 귀하의 답변에 감사드립니다. 마지막으로 JSF 2.2의 새로운 기능이 필요 없기 때문에 JSF를 2.1.25로 다운 그레이드하는 문제를 해결했습니다. 당신의 대답으로 간접적으로 또 다른 문제를 해결했습니다. JSF 2.1이 GlassFish 4에서 지옥처럼 행동했기 때문에 버전 배포 문제 인 것 같습니다. 나는 아직도 배치에 대해 많은 것을 배워야한다. 다시 한 번 감사드립니다! – blitziken

+0

스레드 사용에 대해 저에게 용서하십시오. 같은 문제가 있습니다. @BalusC glassfish-web.xml은 어디에 있어야합니까? 나는 그것을 작동시킬 수 없다. –

관련 문제