我在将简单的JSON消息转换为映射时遇到问题
Example_1.json:
{"toAddress":"aaa@bbb.com",
"fromAddress":"bbb@ccc.com",
"subject":"Subject from JSON",
"body":"Body from JSON"}
Spring配置:
<!-- Read file and output to filesIn channel -->
<int:channel id="filesIn" />
<int-file:inbound-channel-adapter id="filesReader"
directory="file:/C:/data/inputDirectory"
filename-pattern="*.json"
channel="filesIn"
prevent-duplicates="true">
<int:poller id="poller" fixed-delay="5000" max-messages-per-poll="1" />
</int-file:inbound-channel-adapter>
<file:file-to-string-transformer input-channel="filesIn" output-channel="strings"/>
<int:json-to-object-transformer input-channel="strings" output-channel="objectsOut" type="java.util.Map"/>
<int:object-to-map-transformer input-channel="objectsOut" output-channel="mapOut"/>
<int-file:outbound-channel-adapter channel="mapOut" directory="file:/C:/data/outputDirectory1" />
<!-- Activate logging -->
<int:channel id="filesIn">
<int:interceptors>
<int:wire-tap channel="LoggingChannel" />
</int:interceptors>
</int:channel>
<int:channel id="strings">
<int:interceptors>
<int:wire-tap channel="LoggingChannel" />
</int:interceptors>
</int:channel>
<int:channel id="objectsOut">
<int:interceptors>
<int:wire-tap channel="LoggingChannel" />
</int:interceptors>
</int:channel>
<int:channel id="mapOut">
<int:interceptors>
<int:wire-tap channel="LoggingChannel" />
</int:interceptors>
</int:channel>
<int:channel id="LoggingChannel" />
<int:service-activator input-channel="LoggingChannel" expression="@LOG.trace('Headers are: {}, Payload is: {} ', headers, payload)" />
<bean id="LOG" class="SafeLoggerFactory" factory-method="getLogger">
<constructor-arg value="integrationEmailLogger"/>
</bean>
错误:
org.springframework.integration.handler.LoggingHandler]-org.springframework.messaging.MessageHandling异常:未能将消息有效载荷写入文件;嵌套异常是java.lang.IllegalArgumentExcture:不支持的消息有效载荷类型[java.util.HashMap],故障消息=GenericMessage[有效载荷={subject=从JSON的主题,from m地址=bbb@ccc.com,body=从JSON的正文,到地址=aaa@bbb.com},标头={file_originalFile=C:\data\inputDirectory\Example_1.json,id=be65b982-ef47-0207-2ec9-3fdb04837651,file_name=Example_1.json,时间戳=1575407244281}]
本质上,我想将JSON文本转换成一个映射,这样我就可以使用诸如payload之类的表达式。toAddress使用出站通道适配器发送电子邮件
您应该始终包括完整的堆栈跟踪;截断的堆栈跟踪是无用的。
为什么你有一个对象到映射转换器?json到对象转换器
已经为您创建了一个映射;o-t-m-t是多余的。
文件int file:outbound channel adapter
不知道如何处理映射负载。这就是失败的地方。
我目前正在使用Laravel v7。2.安装babenkoivan/scout elasticsearch驱动程序(4.2)并使用AWS elasticsearch 7.1调幅。在我的应用程序中映射了几个表,这些表工作正常,但嵌套映射存在问题,以前该映射工作正常,现在已损坏。 我将数据保存到一个表中,并将该表数据复制到AWS Elasticsearch中。我使用MySQL 5.6,所以我使用TEX
我有一个从RESTendpoint返回的列表。我需要将该列表分为多个类别(类别是列表中每个条目中的一个项目)。各个类别将写入缓存,以便以后更快地查找。 我不知道我能不能。映射()条目,并提供多个filter()或某种类型的case语句,以将类别条目放入正确的bucket中。 用rxJava实现这样的东西听起来合理吗? 更新:非工作版本 然而,这些按顺序触发,这是我的理解,第二个可观察对象没有发送任
我犯了一个错误,比如: 我知道在堆栈溢出中已经出现了一些类似的问题,但解决方案对我来说并不适用。请您检查一下我的实体,以便找出到底是什么导致了这个问题? 使用者 组 角色 控制器方法 痕迹 /vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(2607):教义\ORM\实用程序\标识符Flattener- 解决了的! 该问题是由重新定义的方法引起
正如最近的Java更新8u60一样,Java支持使用Nashorn脚本引擎将json映射到对话中,我一直在尝试使用这里提供的示例代码来验证这一点。然而,它给了我ScriptException和下面的stacktrace。我正在使用Java8U65来运行给定的代码。 堆栈跟踪: 线程“main”javax中出现异常。剧本ScriptException:TypeError:无法在jdk的第1行调用un