Glassfish Bean验证奇怪的错误

时间:2013-02-19 12:53:49

标签: glassfish bean-validation corba

我在我的应用程序中使用bean验证。当没有约束验证错误时,一切都很好。每次出现验证错误时,Glassfish都会抛出以下异常:

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)

bean-validation.jar存在于glassfish / modules文件夹中。创业公司没有抛出任何有关验证的例外情况。

PS。请注意,我们正在使用带有CORBA的远程bean。

可在GlassFish 3.1.2.2和3.1.1上重现。

1 个答案:

答案 0 :(得分:0)

我通过CORBA将此问题跟踪到ConstraintValidationException的序列化。不知何故,bean验证模块没有正确加载osgi,并且缺少javax.validation.groups.Default类。我做了一个快速的解决方法,以便拦截ConstraintValidationException并且永远不会通过CORBA发送。而是将验证错误信息收集在可以通过服务实际序列化的自定义Exception类中。