Apache CXF 和 javax.ws.rs.core.Response

Apache CXF And javax.ws.rs.core.Response

我有一个 deleteProduct 方法:

        @Override
        public Response deleteProduct(String productId) {
            Response response = Response
                    .status(Response.Status.FORBIDDEN)
                    .entity(new IllegalAccessError("This is a JAXB object with an error string"))
                    .build();
            return response;
        }

我的问题是我总是收到这样的回复:

      <ns2:deleteProductResponse xmlns:ns2="http://ws.cxf.test.com/">
         <return/>
      </ns2:deleteProductResponse>

为什么我没有看到我的消息错误?

我认为您在 JAX-RSJAX-WS 之间感到困惑。如果您指的是 SOAP-UI,则意味着您正在构建基于 SOAP 的 Web 服务,或者换句话说,您正在使用 SOA - 面向服务的架构,它在 SOAP 协议而非 HTTP 上运行。因此,基于它们的 HTTP 状态代码或错误消息不会在此处出现。

但是,如果您要构建 RESTful 网络服务(基于 JAX-RS 的网络服务),它与 HTTP 息息相关。

首先,根据您的项目需求决定使用什么框架,然后进行相应的编码。