2014-09-23 4 views
1

최근 Glassfish 4.1을 사용하기 위해 테스트 서버 중 하나를 업데이트했습니다. 이 업데이트 후에 Glassfish에 웹 서비스를 배포하는 데 문제가 있습니다. 애플리케이션을 배포 할 때 "배포 도중 오류가 발생했습니다 : 애플리케이션을로드하는 중 예외가 발생했습니다 : java.lang.ClassNotFoundException : org.hibernate.validator.internal.cdi.interceptor.ValidationInterceptor"(아래 전체 스택 추적 참조).문제 Glassfish 4.1로 업데이트

원래이 문제는 우리가 사용하는 사용자 정의 된 Guava jar (호환성 문제를 회피하기 위해 beans.xml 추가)를 중심으로 생각했습니다. 나는 최신 Guava 릴리스 (18)를 사용하여 응용 프로그램을 다시 빌드하고 여전히 Glassfish 4.1 . 응용 프로그램은 아무 문제가 최신 구아바 버전 4.0 글래스 피시에 배포가 없습니다

[2014-09-23T10:15:37.589-0600] [glassfish 4.1] [SEVERE] [] [javax.enterprise.system.tools.deployment.common] [tid: _ThreadID=177 _ThreadName=admin-listener(25)] [timeMillis: 14114 
88937589] [levelValue: 1000] [[ 
    Exception while invoking class org.glassfish.ejb.startup.EjbApplication start method 
java.lang.RuntimeException: java.lang.ClassNotFoundException: org.hibernate.validator.internal.cdi.interceptor.ValidationInterceptor 
     at com.sun.ejb.containers.BaseContainer.setStartedState(BaseContainer.java:962) 
     at org.glassfish.ejb.startup.EjbApplication.markAllContainersAsStarted(EjbApplication.java:140) 
     at org.glassfish.ejb.startup.EjbApplication.start(EjbApplication.java:152) 
     at org.glassfish.internal.data.EngineRef.start(EngineRef.java:122) 
     at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:291) 
     at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:352) 
     at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:500) 
     at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219) 
     .... 
     at java.lang.Thread.run(Thread.java:744) 
Caused by: java.lang.ClassNotFoundException: org.hibernate.validator.internal.cdi.interceptor.ValidationInterceptor 
     at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1783) 
     at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1633) 
     at com.sun.ejb.containers.interceptors.InterceptorManager.buildEjbInterceptorChain(InterceptorManager.java:431) 
     at com.sun.ejb.containers.interceptors.InterceptorManager.<init>(InterceptorManager.java:131) 
     at com.sun.ejb.containers.BaseContainer.initializeInterceptorManager(BaseContainer.java:3396) 
     at com.sun.ejb.containers.BaseContainer.setStartedState(BaseContainer.java:950) 
     ... 83 more 
+0

저도 같은 문제에 봉착 :

당신은이 표준이 해결 방법을 준수 적용 할 수 있습니다. 어떻게 그걸 해결 했니? –

답변

1

버그가 수 있도록 보인다.

https://java.net/jira/browse/HK2-233 https://java.net/jira/browse/JERSEY-2661

불행하게도 오라클은 글래스 피쉬에 대한 패치 만 주요 릴리스 (AFAIK)를 해제하지 않습니다. 한 가지 방법은 the GlassFish fork "Payara"을 사용하는 것입니다.

private <T> boolean beanIsValid(final T bean) { 
    final Validator validator = Validation.buildDefaultValidatorFactory().getValidator(); 
    final Set<ConstraintViolation<T>> constraintViolations = validator.validate(bean); 

    return constraintViolations.isEmpty(); 
} 
관련 문제