使用 json 作为 cxf-wadl2java 的来源

Using json as a source for cxf-wadl2java

我收到 json 格式的 RESTful 服务规范,需要为客户端创建 java api 库。

现在 swagger 可以毫无问题地做到这一点,但我更愿意使用 cxf-wadl2java maven 插件。默认情况下,它不期望 json 格式。请参阅下面的异常原因堆栈跟踪。

有没有办法配置 cxf-wadl2java 插件来读取 json 文档?

Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '{' (code 123) in prolog; expected '<' at [row,col {unknown-source}]: [1,1] at com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:653) at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2133) at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1181) at org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:1367) at org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:1261) at org.apache.cxf.staxutils.StaxUtils.read(StaxUtils.java:1189) at org.apache.cxf.staxutils.StaxUtils.read(StaxUtils.java:1178) at org.apache.cxf.staxutils.StaxUtils.read(StaxUtils.java:1168) at org.apache.cxf.tools.wadlto.jaxrs.SourceGenerator.readXmlDocument(SourceGenerator.java:1757) ... 32 more

也许你可以进行两步转换。 swagger.json 到 wadl 文件,然后使用 wadl2java 插件。

  1. 在你的机器上安装 npm
  2. 使用 this npm package 中定义的 maven exec 插件和 运行 命令从 swagger 转换为 wadl。
  3. 使用 cxf wadl2java 插件从上面生成的 wadl 文件生成 java 文件。

编辑

swagger.io 提供了一个 maven 插件。请参考用法示例 here