【问题标题】:Getting SOAP request as POJO in Mule在 Mule 中将 SOAP 请求作为 POJO 获取
【发布时间】:2015-04-14 08:41:41
【问题描述】:

在我们的项目中,我们公开了许多从 wsdl 生成的 Web 服务。生成它们后,我可以看到请求和响应被映射到 POJO,当我做出响应时,我只是设置了一个新的 POJO。这真的很好用。但是,我的请求有问题。当我们收到请求时,我预计有效负载将是映射请求参数的 POJO。有效负载实际上变成了一个对象数组。我可以访问这些值,但这不是很舒服。你可以看一下图片。

我可以看到方法中“变量”下的它与我们想要的 POJO 正确匹配。是否有一些我在某处遗漏的设置,以便我们可以将有效负载映射到正确的 POJO 类型?

【问题讨论】:

  • 您使用哪种 SOAP 样式:doc/lit?生成的服务接口是否接受请求 POJO 或多个参数?
  • @DavidDossot 在从 wsdl 生成的 Ilegacy 类中,我可以看到为什么请求是这样的:
  • public se.comaround.ws.ArrayOfMenuContentItem getMenuContent(@WebParam(name = "loginName", targetNamespace = "blablk.com") java.lang.String loginName, @WebParam(name = "passWord", targetNamespace = "blablk.com") java.lang.String passWord, @WebParam(name = "parentID", targetNamespace = "blablk.com") java.lang.Integer parentID);
  • 显然这就是问题所在:getMenuContent 采用 4 个参数而不是单个包装对象。再问:WSDL 是什么 SOAP 风格?
  • @DavidDossot 我们没有 SOAPBinding 注释,所以我猜是 doc/lit cwiki.apache.org/confluence/display/CXF20DOC/… 我们将 wsdl 作为文件导入以生成服务,这是我猜的默认行为

标签: mule mule-studio


【解决方案1】:

将 WSDL 重新运行到 Java 代码生成,但这次使用包装器样式禁用,请参阅:https://cxf.apache.org/docs/wsdl-to-java.html#WSDLtoJava-wrapperstyle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-01
    • 2016-10-02
    • 2015-03-17
    • 1970-01-01
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多