我的rest服务调用指定了一个末尾包含json扩展名(.json)的json文件的路径。 CXF似乎正在剥离文件扩展名并给我带来麻烦。有谁知道CXF是否正在过滤文件扩展名?
答案 0 :(得分:0)
"有人知道CXF是否正在过滤文件扩展名吗?"
如果你正在使用JAX-RS (似乎CXF通过JAX-WS Provider and Dispatch支持REST - 你还没有明确说明你是哪一个使用)的:强>
免责声明:我无法使用Jersey或Resteasy(支持JAX-RS 2.0)重现这一点。我不是CXF用户,因此我无法使用CFX进行测试
我在某处读到,虽然不在最终规范中,但某些实施者支持具有此行为的草案规范的一部分。
这是该规范最终1.0发布之前的规范的一部分。您可以在 3.7.1请求预处理
中查看最后一个草稿,其中这是规范here的一部分
设置
M
={config.getMediaTypeMappings().keySet()}
L
={config.getLanguageMappings().keySet()}
m
=null
l
=null
- 其中config是ApplicationConfig的应用程序提供的子类的实例。
对于从右到左扫描的最终路径段中的每个分机(
.
字符后跟一个或多个字母数字字符)e
:
- (a)从
中删除前导'。'字符e
- (b)如果
m
为null
且e
是M
的成员,则从有效请求URI中删除相应的扩展名并设置m = e
。- (c)如果
l
为null
且e
是L
的成员,则从有效请求URI中删除相应的扩展名并设置l = e
}。否则转到第4步- 醇>
如果m不为null,则将Accept标头的值设置为
config.getExtensionMappings().get(m)
3(b)基本上是说应该从请求的URI中删除扩展名,并且4表示应该有一些扩展映射可以将json
(扩展名)映射到application/json
并将其设置为Accept
标题。
不确定这是不是你的问题,但只是想知道你可以挖掘的东西: - )