Spring integration 使用XML和JSON的Spring集成REST服务
我想用Spring Integration v4.2+实现以下简单用例:Spring integration 使用XML和JSON的Spring集成REST服务,spring-integration,Spring Integration,我想用Spring Integration v4.2+实现以下简单用例: 例如,向客户端提供REST端点(/api/person) 客户端可以将数据发布到此端点。数据可以JSON、XML或Google协议缓冲区格式提交 应用程序接受数据并将其保存到数据库表中 我有以下Spring集成配置,允许端点接受JSON数据: <int:channel id="receiveChannel"/> <http:inbound-channel-adapter id="restInputAda
/api/person
)将数据发布到此端点。数据可以JSON、XML或Google协议缓冲区格式提交
<int:channel id="receiveChannel"/>
<http:inbound-channel-adapter id="restInputAdapter"
channel="receiveChannel"
path="/api/person"
request-payload-type="java.util.Map"
supported-methods="POST"/>
<jdbc:outbound-channel-adapter id="jdbcOutputAdapter"
channel="receiveChannel"
data-source="dataSource"
query='INSERT INTO "person" ("first_name", "last_name", "email_address") VALUES (:payload[firstName], :payload[lastName], :payload[email])'/>
我尝试将消息转换器
属性与http:inbound channel adapter
一起使用,明确指定Jackson、JAXB和Protocol Buffers转换器,但这也没有帮助
我知道如何在带有@RestController
s的定制Spring MVC应用程序中实现这一点,因此我不寻求Spring集成之外的解决方案
如何调整上面的Spring集成配置,使REST端点可以同时接受JSON、XML和Google协议缓冲区?看起来,尽管JSON转换为
java.util.Map
,但XML没有。这就是我们看到错误的原因
我创建了一个类:
@XmlRootElement class Person { ... }
然后按如下方式修改配置(仅显示更改):
现在,我可以将XML和JSON数据发布到端点
Google协议缓冲区支持现在可以使用添加。看起来,尽管JSON转换为
java.util.Map
,但XML没有。这就是我们看到错误的原因
我创建了一个类:
@XmlRootElement class Person { ... }
然后按如下方式修改配置(仅显示更改):
现在,我可以将XML和JSON数据发布到端点
现在可以使用添加Google协议缓冲区支持
<http:inbound-channel-adapter ...
request-payload-type="Person"
.../>
<jdbc:outbound-channel-adapter ...
query='INSERT INTO "person" ("first_name", "last_name", "email_address") VALUES (:payload.firstName, :payload.lastName, :payload.email)'
.../>