你可以使用JAX-WS&amp ;;抛出链式异常吗?肥皂?

时间:2013-08-29 09:37:55

标签: java web-services soap exception-handling jax-ws

我有一些类似的代码:

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吗

1 个答案:

答案 0 :(得分:2)

  

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

  1. 理论上可能是一种方式,但它很可能会破坏SOAP的语言中立性,所以即使单凭这些理由也不建议这样做;

    < / LI>
  2. 即使在使用Java序列化时很少支持它,它仍然不是推荐,因为您无法控制哪个异常将成为根本原因。它可能不是可序列化的,它可能包含对大型对象图的引用等。

  3. 始终建议仅将错误消息传输到客户端,并依靠服务器端日志进行详细诊断。