2013-02-19 75 views
2

我在我的應用程序中使用bean驗證。當沒有約束驗證錯誤時,一切都很好。每次有一個驗證錯誤,Glassfish的引發以下例外:Glassfish Bean驗證奇怪的錯誤

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存在的glassfish /模塊的文件夾。初創公司不會在驗證方面拋出任何例外。

PS。請注意,我們正在使用遠程bean和CORBA。

在GlassFish 3.1.2.2和3.1.1上可重複使用。

+0

我將此問題描述爲通過CORBA對ConstraintValidationException進行序列化。不知何故,使用osgi不能正確加載bean驗證模塊,並且缺少javax.validation.groups.Default類。我做了一個快速的解決方法,以便攔截ConstraintValidationException並且永遠不會通過CORBA發送。相反,驗證錯誤信息收集在自定義的Exception類中,該類可以通過服務實際序列化。 – 2013-03-05 20:21:04

+0

由於我有同樣的錯誤,您能否提供一些信息來截取郵件?使用我的道,我知道什麼時候會發生違規行爲,但使用攔截器會更好。 – djmj 2013-06-09 00:54:20

+0

我不再能夠訪問或提供我使用的代碼,但基本上我只是創建了一個Interceptor,它在適當的層次上捕獲ConstraintValidationExceptions,並將它們作爲自己的自定義異常向前引發,然後通過CORBA正確序列化。 – 2013-06-17 05:56:34

回答

0

我將此問題描述爲通過CORBA對ConstraintValidationException進行序列化。不知何故,使用osgi不能正確加載bean驗證模塊,並且缺少javax.validation.groups.Default類。我做了一個快速的解決方法,以便攔截ConstraintValidationException並且永遠不會通過CORBA發送。相反,驗證錯誤信息收集在自定義的Exception類中,該類可以通過服務實際序列化。