Java 理解JAX-WS中的@Oneway注释
根据javadoc: 指示给定的@WebMethod只有一条输入消息,没有输出。通常,单向方法在执行实际业务方法之前将控制线程返回给调用应用程序。如果标记为@Oneway的操作具有返回值或Holder参数,或声明任何已检查的异常,181处理器应报告错误 那么,我是否可以假设,如果我需要异常处理(选中或取消选中),则不建议使用此注释?我不会从业务逻辑返回任何信息,但是我仍然有兴趣知道超时和其他各种特定于调用SOAP方法的错误。这个注释是否意味着我无权访问HTTP返回代码或抛出的异常Java 理解JAX-WS中的@Oneway注释,java,jax-ws,apache-cxf,Java,Jax Ws,Apache Cxf,根据javadoc: 指示给定的@WebMethod只有一条输入消息,没有输出。通常,单向方法在执行实际业务方法之前将控制线程返回给调用应用程序。如果标记为@Oneway的操作具有返回值或Holder参数,或声明任何已检查的异常,181处理器应报告错误 那么,我是否可以假设,如果我需要异常处理(选中或取消选中),则不建议使用此注释?我不会从业务逻辑返回任何信息,但是我仍然有兴趣知道超时和其他各种特定于调用SOAP方法的错误。这个注释是否意味着我无权访问HTTP返回代码或抛出的异常 问题:我最好自
问题:我最好自己解决这个问题,以获得一个真正的异步调用,并删除
@Oneway
注释?@Oneway
意味着任何东西都无法逃脱您的方法,无论是响应还是异常。这有两个原因:
- 从技术上讲,异常只是另一种类型的响应(SOAP错误),因此它不能从单向方法返回(它不能返回任何东西)
- 通常单向方法由web服务框架异步执行(我知道ODE)。框架会立即返回,因此您的客户可能在处理单向方法之前就收到了空响应。当抛出异常时,原始HTTP连接早就消失了