Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java web服务和远程异常的最佳实践_Java_Web Services - Fatal编程技术网

java web服务和远程异常的最佳实践

java web服务和远程异常的最佳实践,java,web-services,Java,Web Services,我正在编写一个web服务。因此,我: public interface MyService extends Remote { public void service1(); } public class MyServiceImpl implements MyService { public void service1() { /* do something that sometimes throws an exception */ } } 我正在读有关RemoteException。

我正在编写一个web服务。因此,我:

public interface MyService extends Remote
{
  public void service1();
}

public class MyServiceImpl implements MyService
{
  public void service1() { /* do something that sometimes throws an exception */ }
}
我正在读有关
RemoteException
。我是否应该将
service1()
中的所有代码包装到
try..catch
中,以将任何异常包装到
RemoteException
中?然后我必须为
service2()
service3()
等等做这件事

让调用者(在我的例子中是servlet)来做这件事更好吗


在远程异常中究竟应该包装什么-服务器中发生的一切?还是只处理远程调用过程的异常(反射、序列化等)?

据我所知,您只需要声明这些方法在接口中抛出
RemoteException

public interface MyService extends Remote {
  public void service1() throws RemoteException;
}

您的代码不应该抛出
RemoteException
,它应该在访问远程服务时为WS-framework保留

大多数框架都会捕获
异常
,将其包装为SOAP错误,这是客户端通常通过抛出另一个带有SOAP错误消息的异常来处理的(请记住,客户端可能不是Java)


最重要的一点是,您应该抛出特定于已发生故障的异常,让框架发送适当的响应。

Wow,直到现在我还没有找到您的答案。听起来好像我都做错了。。。谢谢你的信息。