SOAP Web服务的REST代理:我可以重用JAXB类作为输入/输出JSON吗?

时间:2014-07-29 11:25:36

标签: json rest spring-mvc soap jaxb

我正在创建一个代理服务,用于将现有的SOAP Web服务转换为REST。我的意思是,创建一个基于Spring的REST控制器来创建将调用现有SOAP Web服务的REST接口。 SOAP响应必须在REST服务的响应中转换为JSON。

我遵循的步骤是:

  1. 感谢CXF生成了SOAP WebService类 ( WSDL2Java的)。好。
  2. 我创建了REST控制器,用于调用现有的SOAP WS和之前的类。行。
  3. 输入JSON参数对应于SOAP输入参数。我可以重用我在 wsdl2java 进程中生成的JAXB类吗?
  4. 所以我尝试将REST控制器定义为:

    public @ResponseBody WebServiceJAXBOutput service(@RequestBody WebServiceJAXBInput input){
    ...
    }
    

    然而,如果我指定数据值,REST调用总是返回400(错误请求)。虽然它在输入JSON字段为空时有效:

    {
     "application":null,
     "center":null,
     "language":null
    }
    

    我猜JAXB getter / setter由于JAXBElement( public JAXBElement getApplication()而失败)。

    这种方法应该有效吗?我错过了什么吗?

    非常感谢!! 塞吉

0 个答案:

没有答案