我使用gwt 2.7.0请求工厂。 编辑:我不使用客户端验证,只使用服务器端验证(休眠注释)
我尝试编辑的实体名为" Article.java"。
在正常情况下,我会使用ArticleEditor(从编辑器扩展)在客户端编辑文章。当文章到达服务器时,验证将被激活。如果任何验证出错,客户端将收到" Set< ConstraintViolation< ? > > oErrors"我可以在EditorFramework中使用它来显示表单上的错误。
在我的特定情况下,我有两台服务器:
A = One正在使用gwt编辑ValueProxy(pojos)(不会保留实体)。
B = Other可以访问数据库(hibernate),由A通过无状态EJB加入。
我制作了一篇文章(不包含任何hibernate注释,简单的pojo),名为" PersistentArticle.java" (包含所有hibernate注释逻辑)。 Bothe类具有相同的属性和方法。
编辑文章后,它到达服务器端A,然后我通过ejb消息将对象发送到服务器B.在B中,我从Article类创建一个PersistentArticle实例并尝试保持。如果任何验证出错,则会生成javax.validation.ConstraintViolationException。
问题是我不知道如何将服务器B生成的ValidationException与服务器A中的requestFavtory和EditorFramework绑定,因此我可以在表单中显示错误。 (在正常情况下,这是由服务器A中的requestfactory自动完成的)
回到客户端,我在
中收到ValidationExceptionpublic void onFailure(ServerFailure oError)方法来自请求的Receiver而不是
onConstraintViolation方法(设置< ConstraintViolation<?>> oErrors,这是理想的。
我试图做的可能吗? 你推荐什么?
英语不是我的母语;请原谅我的任何错误。
Thaks in advanced。
答案 0 :(得分:0)
RequestFactory将在调用服务方法之前验证您的对象,并在存在违规时中止所有内容。如果您的验证不适合此方案,那么您就无法利用它。
您的验证是在服务方法中完成的,因此如果您想在客户端处理错误,则必须在返回值中发送错误。这意味着将它们移动到值代理,并返回到客户端的约束违规。