Swagger 1.3.7和Jersey 2.15/2.16问题:请求实体的格式不受请求资源的支持



我有一个REST API,它与Jersey 2.6和Swagger 1.3.7一起工作。我读到Jersey 2.9修复了我收到的警告,所以我升级到了最新的Jersey 2.16,但后来Swagger停止了工作。我回去一次升级一个版本,直到我看到Swagger使用2.15,所以我就决定了。现在,PUT API与Swagger一起失败,并出现以下错误:

服务器拒绝了此请求,因为请求实体的格式不受请求方法的请求资源支持

API使用FireFox RESTClient并指定"application/json"。

我确实有"jerse-media json-jjackson"作为依赖项,并在程序中调用"Client-Client=ClientBuilder.newClient().register(JacksonFeature.class);"。

我试着升级Swagger,但无济于事。

Swagger是否已被证实与Jersey 2.15/2016合作?

我最近设法让swagger core与Jersey 2.16一起使用,但也遇到了类似的问题。请记住,他们使用的是最新版本(1.5.X),而不是1.3.X,但同样的解决方案也适用。

这个问题很可能与版本解析有关,特别是jackson数据绑定的版本解析。出于某种原因,即使是jersey media json jackson 2.16也依赖于旧版本的jackson databind,尽管它与最新版本配合得很好。如果没有更多的细节,很难提出一个完整的解决方案,但您可以按照依赖树查看那里的冲突。

如果您确实需要进一步的帮助,我建议使用我们的邮件列表,或者更好的IRC频道,我们可以在那里在线互动并解决它。

最新更新