JerseyTest 与 ApacheCFF 客户端不返回 reasonPhrase

Posted

技术标签:

【中文标题】JerseyTest 与 ApacheCFF 客户端不返回 reasonPhrase【英文标题】:JerseyTest with ApacheCXF client does not return a reasonPhrase 【发布时间】:2022-01-23 18:07:09 【问题描述】:

我有一个简单的 JerseyTest,如下所示:

    final Response getResponse = this.target(endpoint).get();
    assertStatusEquals(Status.NOT_FOUND, getResponse);
    assertEquals("Cannot find something", getResponse.getStatusInfo().getReasonPhrase());

这在使用标准 JerseyClient 时效果很好。但是,我切换到 ApacheCXF 因为我想使用 PATCH 方法。

...
//We want to support PATCH, which is sucky in Java's HttpUrlConnection.
//That is why we need a different HttpClient implementation (This is ApaceCXF)
//We need to register the JacksonJaxbJsonProvider
private final Client cxfHttpClient = new ClientBuilderImpl().build()
        .register(JacksonJaxbJsonProvider.class);

//Set it before each test

@Override
public void setUp() throws Exception 
    super.setUp();
    this.setClient(this.cxfHttpClient);

现在这个简单的测试中断了,因为.getReasonPhrase() 返回null。我没有更改服务器,所以我希望消息在那里。

【问题讨论】:

【参考方案1】:

似乎是一个错误:CXF-8633,

正在修复中:https://github.com/apache/cxf/commit/d23ed9dc87481d9a6cabdb2b6a6e086da6fcce24

【讨论】:

以上是关于JerseyTest 与 ApacheCFF 客户端不返回 reasonPhrase的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 spring-security 设置 JerseyTest?

VB.NET 服务器与客户端数据交互问题?

iOS客户端与服务器的数据交互总结

易语言 客户端如何判断与服务器掉线

服务端与客户端的交互技术有几种

TCP与UDP,TCP服务器与客户端,UDP服务器与客户端