2016-07-04 44 views
0

Im usign gwt 2.7.0请求工厂。 编辑:我没有使用客户端验证,只有服务器端验证(休眠标注)GWT requestfactory验证外部服务器上的实体

im试图编辑的实体称为“Article.java”。

在正常情况下,我会用ArticleEditor(Extends from Editor)在客户端编辑一篇文章。当文章到达服务器时,验证会被执行。如果任何验证出错,客户端将收到一个“Set < ConstraintViolation <?>> oErrors”,我可以在EditorFramework中使用它来显示表单上的错误。

在我的具体情况,我有两个服务器:

A =一种是使用GWT编辑ValueProxy(POJO)中(不持久的实体)。

B =其他可以访问数据库(hibernate),由A通过无状态EJB加以表示。

我制作了名为“PersistentArticle.java”(包含所有hibernate注释逻辑)的Article(不包含任何hibernate注释,简单pojo)副本。这些类具有相同的属性和方法。

编辑完文章后,它到达服务器端A,然后通过ejb消息将对象发送给服务器B.在B中,我从Article类创建一个PersistentArticle实例并尝试保留。如果任何验证出错,它将生成一个javax.validation.ConstraintViolationException。

问题是我不知道如何将服务器B生成的ValidationException与服务器A中的requestFavtory和EditorFramework绑定,所以我可以在窗体中显示错误。从请求的接收器(在正常情况下,这是自动requestfactory在服务器A进行)

早在CLIEN侧,收到ValidationException在

公共无效onFailure处(ServerFailureθ误差)方法和不是在

方法onConstraintViolation(设置< ConstraintViolation <?>> oErrors,这是理想的。

是否有可能什么即时试图做? 你有什么建议?

英语不是我的母语;请原谅我的错误。

Thaks in advanced。

回答

0

RequestFactory将在调用服务方法之前验证您的对象,并在存在违规时中止所有内容。如果你的验证不符合这个方案,那么你就无法利用它。

您的验证是在服务方法内完成的,因此如果您想在客户端处理它们,则必须将错误返回到返回值中。这意味着将它们移动到价值代理,并回到客户端的约束违规。