如何在 GWT RPC 中将异常从服务器传递到客户端

Posted

技术标签:

【中文标题】如何在 GWT RPC 中将异常从服务器传递到客户端【英文标题】:How to pass exception from Server to Client side in GWT RPC 【发布时间】:2014-11-21 18:56:50 【问题描述】:

我正在使用 GWT 中的 Async 方法创建 RPC 调用。我必须检查我的服务器端是否有任何错误。我可以在 GWT RPC 的客户端捕获服务器端的异常吗?

【问题讨论】:

【参考方案1】:

必须在 RemoteService 接口的方法中的 throws 子句中声明异常,并且必须在与任何其他传输类相同的条件下由 GWT-RPC 序列化。

您将在AsyncCallbackonFailure 中收到异常。另请参阅javadoc for AsyncCallback


编辑:实际上,我刚刚说了与文档已经说过的相同的话:http://www.gwtproject.org/doc/latest/DevGuideServerCommunication.html#DevGuideHandlingExceptions

【讨论】:

【参考方案2】:

是的,你可以。只需确保您的异常实现了 Serializable:

public class LoginException extends Exception implements Serializable 

    public LoginException() 
    

【讨论】:

我正在尝试将外部服务器信息拉到 RPC 服务器,然后尝试在我的客户端显示信息。这在这种情况下也有效吗?我是否应该在我的服务器端实现中扩展这个异常类并将其放在 TRY-CATCH 块中以将异常发送到 RPC 的客户端。 如果外部异常是可序列化的,您可以简单地将其抛出到您的 RPC 方法中。如果没有,你可以创建自己的异常,设置你想要的消息,然后抛出它。 ...并在您的 RPC 接口中声明为 throws。没有它,GWT 不知道你想发送它。

以上是关于如何在 GWT RPC 中将异常从服务器传递到客户端的主要内容,如果未能解决你的问题,请参考以下文章

使用 GWT RPC 序列化在 POST 中将对象从客户端发送到服务器

在 RPCGen 中将字符指针从客户端传递到服务器

不使用 GWT RPC 的客户端服务器通信

拦截 GWT RPC 的异步代理服务异常

在 GWT-RPC 中将 ArrayList 作为参数发送

如何在 onc-rpc 中将字符串 (char*) 从服务器发送到客户端