首先,没有明显的方法可以在 SOAP 和 REST 之间进行自动代理。
REST 完全是关于数据/资源(各种形状和颜色)和很少的操作,SOAP 完全是关于使用 XML 定义的数据的操作。
但是使用 Camel 使用 SOAP 消息应该相当直接(例如使用 Spring WS)。
然后,您可以使用原始 XML(XPATH 或 XSLT),也可以通过使用 JAXB 将其解组为 Java 对象。这可能是相当自动化的。请参阅(http://camel.apache.org/spring-ws-example.html 获取 Spring WS、Camel 和 JAXB 示例)。我还建议您使用 maven-jaxb2-plugin 根据 SOAP 模式生成带有 JAXB 的 Java 对象。
然后,您需要某种查找表在 SOAP 端点/方法/soap 操作之间路由到 REST 服务。这在很大程度上取决于 REST 服务的结构。然后用 Camel 调用 RESTful 资源应该是微不足道的。无论你喜欢什么,都可以考虑它是 HTTP 或 REST。
您必须考虑的可能是此场景中最重要的部分,即您的 REST 服务是否具有除 XML 之外的其他有效负载编码,例如 JSON。然后必须完成 XML 和 JSON 之间的映射。对此没有真正的标准,但 Camel 可以简化这项工作。Camel 甚至将在下一个版本 2.10 (https://issues.apache.org/jira/browse/CAMEL-4930) 中提供自动转换功能。