当前位置: 首页 > 面试题库 >

处理GWT RequestFactory服务器错误响应

阎经武
2023-03-14
问题内容

我有一个新编码的GWT / GAE应用,该应用在客户端上使用RequestFactory和Editors,在背面使用自定义的Objectify DAO服务。

flush()然后persist()路径在成功时可以正常工作。客户端JSR 303也可以正常工作。

我的问题是如何触发服务器警告/错误并处理UI更新?

我在http://turbomanage.wordpress.com/2010/02/09/generic-dao-for-
objectify-2/
使用Chandler的Generic DAO for Objectify 2

我的gwt活动正在调用persist(myProxy).fire(new Receiver <>)

我的dao代码针对业务逻辑情况(例如“找到重复的电子邮件地址-
想要登录?”)抛出IllegalArgumentException和其他RuntimeExceptions。

Receiver <>。onSuccess()可以很好地跟踪成功的结果。Receiver <>。onFailure()和Receiver
<>。onViolation()均不会报告RuntimeExceptions。

(更正:针对服务器端异常正在调用onFailure())

有一个更好的方法吗?DAO应该抛出哪些异常,以便onViolation()或onFailure()报告错误?编辑者应如何处理异常并从异常中恢复?


问题答案:

我发现最通用的命令序列是

void start() {
    // Either get p
    context1.get(..).to( new Receiver<P> { onSuccess(P resp){p = resp;} ... }).fire();
    // OR create p
    p = context2.create( P.class );
    // Then save p
    req = context2.persist(p).to( new Receiver<P>{  /* note do not use context1 */
        onViolation(...) { /*JSR 303 handler*/ };
        onFailure( error ) { /* handle */ error.getMessage() }; 
        onSuccess(X x) { /* whatever persist() returns handler */ }; } ); 
    // drive editor with p
    driver.edit( p, req);    
}

....
void onSave() {    
    // editor
    ctxt = driver.flush()  /* note ctxt == context2 */
    if ( driver.hasErrors() ) { /*JSR 303 handler*/};
    // RF
    ctxt.fire();
}

根据下面的对话摘录, 网址
http://groups.google.com/group/google-html" target="_blank">web-
toolkit/browse_thread/thread/da863606b3893132/96956661c53e1064?hl=zh-
CN

Thomas Broyer onFailure应该包含您在服务器端抛出的异常的getMessage()。

您可以通过向RequestFactoryServlet提供自己的ExceptionHandler来对其进行调整(扩展它并使用其带有ExceptionHandler的构造函数)。

仅当您的实体未通过JSR-303 Bean验证时才调用onViolation,该验证在调用任何服务方法之前进行检查。

如果要“捕获”故障代码中的故障,则必须为persist()服务方法添加一个Receiver:
context.persist(p).to(new Receiver…



 类似资料:
  • 在浏览器发送 Ajax 请求之后,下一步骤自然是服务器响应。服务器在接收到请求之后会进行一系列处理步骤,最终返回结果。而与此同时,客户端会在接收到返回的结果之后进行界面的展示或者数据的处理。 本章节主讲 Ajax 收到返回数据后处理服务器响应过程。 前言 本章节将会从两个方面来讲解 Ajax 如何处理服务端响应,它们分别是: 处理的时机 处理的方法 如果你不知道 Ajax 是如何获取服务端响应内容

  • 我们正在构建一个JavaSDK,以简化对我们提供REST API的服务之一的访问。这个SDK将由第三方开发者使用。我正在努力寻找最好的模式来实现更适合Java语言的SDK中的错误处理。 假设我们有其余的endpoint:。这可能会返回以下HTTP状态代码: 401:用户未通过身份验证 403:用户没有访问此照片的权限 404:没有带那个身份证的照片 该服务看起来像这样: 在上面的代码中,我还没有提

  • 错误响应 状态:400 消息:“用户ID和密码错误” 在这里,我可以获得或处理成功数据,但不能获得或处理错误数据,因为在catch函数中,只有错误对象被传递,而错误对象只包含来自服务器的响应代码,而不是响应数据

  • 问题内容: 我最近公布的我面对这个问题的详细说明,这里的SO。由于我无法发送实际的请求,因此我使用了超时来模拟异步行为。在@Gloopy的帮助下,从模型到视图的数据绑定工作正常 现在,当我使用而不是(在本地测试)时,我可以看到异步请求成功,并且在我的服务中充满了json响应。但是,我的看法没有更新。 在这里更新了Plunkr 问题答案: 这是一个可以满足您需求的Plunk:http ://plnk

  • 问题内容: 我最近公布的我面对这个问题的详细说明,这里的SO。由于我无法发送实际的请求,因此我使用了超时来模拟异步行为。在@Gloopy的帮助下,从模型到视图的数据绑定工作正常 现在,当我使用而不是(在本地测试)时,我可以看到异步请求成功,并且在我的服务中充满了json响应。但是,我的看法没有更新。 问题答案: 这个想法是您直接使用promise及其promise,然后使用它们的“ then”函数

  • 我已经在NIFI中导入了一个新的OPCUA包。这里 而且这个处理器读数良好超过一天,但后来我得到了这个错误: 如果我使用Nifi重新启动StandardOPCUAService,我可以再次接收数据。我如何解决这个问题?如何自动重启服务?