2013-08-29 17 views
1

我有类似这样的代码:您可以使用JAX-WS和SOAP抛出链式异常吗?

public class SOAPServer { 
    public Object[] getObjects() throws IllegalStateException { 
     Object[] objects = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" } 

     int index = 10; 
     try { 

      Object object = objects[index]; 
     } catch (Exception e) { 
      throw new IllegalStateException("Server cannot access Object " + index + ".", e); 
     } 

     return objects; 
    } 
} 

客户端可以接收没有问题,抛出的异常,但似乎原因是没有通过SOAP传递。 Exception::getCause()返回null。

有没有办法使用JAX-WS & SOAP来抛出像这样的链式异常?

回答

2

有没有办法使用JAX-WS & SOAP来抛出像这样的链式异常?

  1. 可能理论上是这样,但它最有可能击败SOAP的语言中立性,所以它不会被推荐甚至仅以这些理由;

  2. 即使在使用Java序列化时这样得到平凡的支持,它仍然不是推荐,因为您无法控制哪个异常将是根本原因。它可能不是序列化的,它可保持一个巨大的对象图的引用,等等

它总是建议只是一个错误消息传送到客户端,并依靠对详细的服务器侧的日志诊断。

相关问题