Java 如何使用quartz在mule中每2分钟运行一次查询
我想每2分钟执行一次查询,但我得到以下错误Java 如何使用quartz在mule中每2分钟运行一次查询,java,mule,flow,Java,Mule,Flow,我想每2分钟执行一次查询,但我得到以下错误 -------------------------------------------------------------------------------- Exception stack is: 1. No serializer found for class org.mule.transport.NullPayload and no properties discovered to create BeanSerializer (to avoid
--------------------------------------------------------------------------------
Exception stack is:
1. No serializer found for class org.mule.transport.NullPayload and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (org.codehaus.jackson.map.JsonMappingException)
org.codehaus.jackson.map.ser.impl.UnknownSerializer:52 (null)
2. No serializer found for class org.mule.transport.NullPayload and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (org.codehaus.jackson.map.JsonMappingException) (org.mule.api.transformer.TransformerException)
org.mule.module.json.transformers.ObjectToJson:107 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/transformer/TransformerException.html)
--------------------------------------------------------------------------------
Root Exception stack trace:
org.codehaus.jackson.map.JsonMappingException: No serializer found for class org.mule.transport.NullPayload and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) )
at org.codehaus.jackson.map.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:52)
at org.codehaus.jackson.map.ser.impl.UnknownSerializer.serialize(UnknownSerializer.java:25)
at org.codehaus.jackson.map.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:610)
+ 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
********************************************************************************
我的流程如下
<flow name="testdbFlow1" doc:name="testdbFlow1">
<quartz:inbound-endpoint responseTimeout="10000" doc:name="Quartz" jobName="CronJobSchedule" repeatInterval="0" cronExpression="0 0/2 * ? * MON-FRI" repeatCount="1">
<quartz:event-generator-job/>
</quartz:inbound-endpoint>
<jdbc-ee:outbound-endpoint queryKey="select_qry" queryTimeout="-1" connector-ref="Database" doc:name="Database"/>
<json:object-to-json-transformer doc:name="Object to JSON"/>
<echo-component doc:name="Echo"/>
</flow>
通过添加quartz尝试以下操作:有效负载:-
<flow name="testdbFlow1" doc:name="testdbFlow1">
<quartz:inbound-endpoint responseTimeout="10000" doc:name="Quartz" jobName="CronJobSchedule" repeatInterval="0" cronExpression="0 0/2 * ? * MON-FRI" repeatCount="1">
<quartz:event-generator-job>
<quartz:payload>quartzSchedular started</quartz:payload>
</quartz:event-generator-job>
</quartz:inbound-endpoint>
<jdbc-ee:outbound-endpoint queryKey="select_qry" queryTimeout="-1" connector-ref="Database" doc:name="Database"/>
<json:object-to-json-transformer doc:name="Object to JSON"/>
<echo-component doc:name="Echo"/>
</flow>
四分贝
更新:-
在json:object-to-json-transformer之后使用记录器,如下所示:-
<logger message="#[message.payload]" level="INFO" doc:name="Logger"/>
并删除回声组件
并在JDBC组件中按如下方式制作exchange pattern=“request-response”:-
<jdbc-ee:outbound-endpoint queryKey="select_qry" queryTimeout="-1" connector-ref="Database" exchange-pattern="request-response" doc:name="Database"/>
感谢您的回复,因为echo“quartzSchedulat已启动”在控制台中打印..但我想在控制台中打印我的所有数据库记录..还有一个问题,如果我有多条记录,我想在启动删除查询后签入数据库。是否可以使用表达式??我该怎么做???如果您想检查是否有超过1条记录,则需要使用SQL查询。。例如如果要检查同一id的数据库中是否有超过1条记录。。然后使用一个Java类,然后编写一个SQL查询,比如int countNo=SELECT COUNT(*)从您的表中,其中user\u id=your id here。。。。现在,如果变量countNo等于或大于1,则记录的存在大于1。。您需要在此之后添加一个Java类,并从中调用JDBC查询,如SQL count