2013-02-19 2 views
2

내 응용 프로그램에서 bean 유효성 검사를 사용하고 있습니다. 제약 조건 검증 오류가 없으면 모든 것이 잘 작동합니다.Glassfish Bean Validation 이상한 오류

Caused by: java.lang.ClassNotFoundException: javax.validation.groups.Default: java.net.MalformedURLException: Unknown protocol: osgi 
at com.sun.corba.ee.impl.util.JDKBridge.loadClassM(JDKBridge.java:325) 
at com.sun.corba.ee.impl.util.JDKBridge.loadClass(JDKBridge.java:228) 
at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.loadClass(Util.java:640) 
at com.sun.corba.ee.impl.util.RepositoryId.getClassFromType(RepositoryId.java:628) 
at com.sun.corba.ee.impl.orbutil.RepIdDelegator.getClassFromType(RepIdDelegator.java:169) 
at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readClass(CDRInputStream_1_0.java:1439) 

콩을 validation.jar는 글래스 피쉬/모듈 폴더에 존재 : 유효성 검사 오류가있을 때마다, 글래스 피시는 다음과 같은 예외가 발생합니다. 시작시 유효성 검사와 관련하여 예외가 발생하지 않습니다.

추신. 우리는 CORBA와 함께 원격 빈을 사용하고 있습니다.

GlassFish 3.1.2.2 및 3.1.1에서 재현 가능합니다.

+0

이 문제는 CORBA를 통해 ConstraintValidationException의 직렬화를 추적했습니다. 어떻게 든 bean 검증 모듈은 osgi와 함께 제대로로드되지 않고 javax.validation.groups.Default 클래스가 빠져있다. ConstraintValidationException이 가로 채어졌고 CORBA를 통해 전송되지 않도록 빠른 해결 방법을 만들었습니다. 대신 유효성 검사 오류 정보는 실제로 서비스를 통해 일련화할 수있는 사용자 정의 Exception 클래스에 수집됩니다. –

+0

동일한 오류가 발생하여 메시지를 가로채는 방법에 대한 정보를 제공 할 수 있습니까? 내 dao를 사용하면 위반이 발생할 수 있지만 인터셉터를 사용하면 더 좋을 것입니다. – djmj

+0

더 이상 액세스 코드를 사용할 수 없지만 기본적으로 적절한 계층에서 ConstraintValidationExceptions를 포착 한 인터셉터를 작성한 다음 CORBA를 통해 올바르게 직렬화 된 자체 사용자 정의 예외로 전달합니다. –

답변

0

이 문제는 CORBA를 통한 ConstraintValidationException의 직렬화에서 추적되었습니다. 어떻게 든 bean 검증 모듈은 osgi와 함께 제대로로드되지 않고 javax.validation.groups.Default 클래스가 빠져있다. ConstraintValidationException이 가로 채어졌고 CORBA를 통해 전송되지 않도록 빠른 해결 방법을 만들었습니다. 대신 유효성 검사 오류 정보는 실제로 서비스를 통해 일련화할 수있는 사용자 정의 Exception 클래스에 수집됩니다.

관련 문제