我有一个Spring Integration项目,它被配置为使用来自AWS SQS的消息,当生成只有String
标题和简单正文的消息时,处理器会快速消耗它。
但是当我尝试使用一个消息时,假设在标题属性中有一个Binary.xml,消息刚刚在航班上 但它从未消耗过。 Spring Integration有什么问题?有人能帮助我吗?
我尝试使用有线点击查看深度日志(Enabling logging in spring integration utiliy),但未显示任何内容。
<int:channel id="in">
<int:interceptors>
<int:wire-tap channel="logger"/>
</int:interceptors>
</int:channel>
<int:logging-channel-adapter id="logger" level="TRACE"/>
我的 connectionFactory bean:
<bean id="basicAWSCredential" class="com.amazonaws.auth.BasicAWSCredentials"
primary="true">
<constructor-arg value="${awsAccessKey}"/>
<constructor-arg value="${awsSecretKey}"/>
</bean>
<bean id="AWSCredentialProvider" class="com.amazonaws.auth.AWSStaticCredentialsProvider"
primary="true">
<constructor-arg index="0" ref="basicAWSCredential"></constructor-arg>
</bean>
<bean id="AWSClientBuilder" class="com.amazonaws.services.sqs.AmazonSQSClientBuilder"
factory-method="standard" primary="true">
<property name="region" value="${awsRegion}"/>
<property name="credentials" ref="AWSCredentialProvider"/>
</bean>
<bean id="SQSProviderConfiguration" class="com.amazon.sqs.javamessaging.ProviderConfiguration">
<property name="numberOfMessagesToPrefetch" value="20"/>
</bean>
<bean id="connectionFactory" class="com.amazon.sqs.javamessaging.SQSConnectionFactory">
<constructor-arg ref="SQSProviderConfiguration"/>
<constructor-arg ref="AWSClientBuilder"/>
</bean>
我的消费者bean:
<int-jms:message-driven-channel-adapter
channel="RouteByFileCompressionChannel" connection-factory="connectionFactory"
destination-name="MyQueueName" concurrent-consumers="10"
acknowledge="client" max-concurrent-consumers="20" id="SqsInboundAdapter" />
答案 0 :(得分:0)
我发现问题是其中一个标题中的自定义类型。
Spring Integration JMS Adapter无法解析ViewController1
自定义类型,因此在生成此类型的消息时不会发生任何事情。我不知道是谁制作了这样的标题,但现在我修复了应用程序中的所有生成器。
非常感谢那些帮助我的人。