0

我使用 gwt 2.7.0 请求工厂。编辑:我不使用客户端验证,只使用服务器端验证(休眠注释)

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

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

在我的特殊情况下,我有两台服务器:

A = One 正在使用 gwt 编辑 ValueProxy (pojos)(不持久化实体)。

B = 其他可以访问数据库(休眠),由 A 通过无状态 EJB 访问。

我制作了一份名为“PersistentArticle.java”的文章(不包含任何休眠注释,简单的pojo)(包含所有休眠注释逻辑)。两个类具有相同的属性和方法。

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

问题是我不知道如何将服务器 B 生成的 ValidationException 与服务器 A 中的 requestFavtory 和 EditorFramework 绑定,所以我可以在表单中显示错误。(在正常情况下,这是由服务器 A 中的 requestfactory 自动完成的)

回到客户端,我在

public void onFailure(ServerFailure oError) 方法来自请求的接收者,而不是在

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

我有可能尝试做什么吗?你有什么建议吗 ?

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

谢谢先进。

4

1 回答 1

0

RequestFactory 将在调用服务方法之前验证您的对象,并在存在违规时中止一切。如果您的验证不适合此方案,那么您将无法利用它。

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

于 2016-07-04T18:46:56.850 回答