为什么CXF正在剥​​离.json文件扩展名?

时间:2014-11-14 16:46:57

标签: json rest service cxf

我的rest服务调用指定了一个末尾包含json扩展名(.json)的json文件的路径。 CXF似乎正在剥离文件扩展名并给我带来麻烦。有谁知道CXF是否正在过滤文件扩展名?

1 个答案:

答案 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的一部分
  
      
  1. 设置

         
        
    • M = {config.getMediaTypeMappings().keySet()}
    •   
    • L = {config.getLanguageMappings().keySet()}
    •   
    • m = null
    •   
    • l = null
    •   
    • 其中config是ApplicationConfig的应用程序提供的子类的实例。
    •   
  2.   
  3. 对于从右到左扫描的最终路径段中的每个分机(.字符后跟一个或多个字母数字字符)e

         
        
    • (a)从e
    • 中删除前导'。'字符   
    • (b)如果mnulleM的成员,则从有效请求URI中删除相应的扩展名并设置m = e
    •   
    • (c)如果lnulleL的成员,则从有效请求URI中删除相应的扩展名并设置l = e }。否则转到第4步
    •   
  4.   
  5. 如果m不为null,则将Accept标头的值设置为config.getExtensionMappings().get(m)

  6.   

3(b)基本上是说应该从请求的URI中删除扩展名,并且4表示应该有一些扩展映射可以将json(扩展名)映射到application/json并将其设置为Accept标题。

不确定这是不是你的问题,但只是想知道你可以挖掘的东西: - )