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的主要内容,如果未能解决你的问题,请参考以下文章