Reputation: 101
Hello this is my configuration:
This is my context configuration:
<beans:bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
lazy-init="false">
<beans:property name="ignoreUnresolvablePlaceholders"
value="true" />
<beans:property name="location" value="classpath:etc/pds/pds.properties" />
</beans:bean>
<channel id="pdsrequest" />
<channel id="pdsresponse" />
<channel id="channelMBD"/>
<channel id="pdsRisposta">
<queue capacity="1" />
<interceptors>
<wire-tap channel="simple" />
</interceptors>
</channel>
<service-activator input-channel="pdsrequest"
output-channel="pdsresponse" ref="pdsCalculateService" />
<logging-channel-adapter id="simple" level="DEBUG" />
<!-- GATEWAY -->
<gateway id="gatewayService"
service-interface="com.cervedgroup.rating.pds.orchestratore.spring.GatewayService"
error-channel="errorChannel" default-reply-timeout="${PDS.GATEWAY_TIMEOUT}"
default-request-channel="pdsrequest" default-reply-channel="pdsresponse" />
<exception-type-router input-channel="errorChannel">
<mapping
exception-type="com.cervedgroup.rating.pds.exceptions.NotDefinedPDSException"
channel="eccezioneProgrammata" />
<mapping exception-type="com.cervedgroup.rating.pds.exceptions.ComputingPDSException"
channel="eccezioneRuntime" />
<mapping
exception-type="com.cervedgroup.rating.pds.exceptions.DataSourcePDSException"
channel="eccezioneRuntime" />
<mapping exception-type="com.cervedgroup.rating.pds.exceptions.PDSException"
channel="eccezioneRuntime" />
<mapping
exception-type="com.cervedgroup.rating.pds.exceptions.ConfigurationException"
channel="eccezioneRuntime" />
<mapping exception-type="java.lang.RuntimeException" channel="eccezioneRuntime" />
</exception-type-router>
<service-activator input-channel="eccezioneProgrammata"
ref="invokerHandlerEccezioneProgrammata" />
<beans:bean id="invokerHandlerEccezioneProgrammata"
class="com.cervedgroup.rating.pds.orchestratore.error.GestoreEccezioneProgrammata" />
<service-activator input-channel="eccezioneRuntime"
ref="invokerHandlerEccezioneRuntime" />
<beans:bean id="invokerHandlerEccezioneRuntime"
class="com.cervedgroup.rating.pds.orchestratore.error.GestoreEccezioneRuntime" />
/>
</beans:beans>
This is my log4j.properties:
log4j.rootLogger=INFO, ROOT
log4j.appender.ROOT=org.apache.log4j.ConsoleAppender
log4j.appender.ROOT.layout=it.pitagora.util.log.CervedLayout
log4j.appender.ME=it.pitagora.util.log.CurrentLoggerAppender
log4j.logger.org.springframework.batch.core.launch.support.CommandLineJobRunner=DEBUG, ME
log4j.logger.org.springframework.integration=OFF, ME
log4j.logger.httpclient.wire.header=INFO,ME
log4j.logger.httpclient.wire.content=INFO,ME
log4j.logger.org.apache.commons.httpclient=INFO,ME
log4j.appender.C=it.pitagora.util.log.CurrentLoggerAppender
log4j.appender.R=it.pitagora.util.log.CurrentLoggerAppender
log4j.appender.D=it.pitagora.util.log.CurrentLoggerAppender
log4j.appender.P=it.pitagora.util.log.CurrentLoggerAppender
log4j.appender.AP=it.pitagora.util.log.CurrentLoggerAppender
log4j.appender.N=it.pitagora.util.log.CurrentLoggerAppender
log4j.logger.org.apache.ibatis=INFO, ME
log4j.logger.org.mybatis.spring=INFO, ME
log4j.logger.org.springframework=INFO, ME
I have a problem in the management of the error channel of the gateway. The channel works, but on nohup is printed the stack trace of the exception:
ERROR 06-02 10:24:07,141 - org.springframework.integration.MessageHandlingException: com.cervedgroup.rating.pds.exceptions.NotDefinedPDSException: Dati non recuperabili
at org.springframework.integration.handler.MethodInvokingMessageProcessor.processMessage(MethodInvokingMessageProcessor.java:76)
at org.springframework.integration.handler.ServiceActivatingHandler.handleRequestMessage(ServiceActivatingHandler.java:64)
at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:98)
at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:78)
at org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:110)
at org.springframework.integration.dispatcher.UnicastingDispatcher.access$000(UnicastingDispatcher.java:51)
at org.springframework.integration.dispatcher.UnicastingDispatcher$1.run(UnicastingDispatcher.java:92)
at org.springframework.integration.util.ErrorHandlingTaskExecutor$1.run(ErrorHandlingTaskExecutor.java:52)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: com.cervedgroup.rating.pds.exceptions.NotDefinedPDSException: Dati non recuperabili
at com.cervedgroup.rating.pds.dao.cgr.RecuperaDatiCGR.recuperaClasseCGRValida(RecuperaDatiCGR.java:218)
at com.cervedgroup.rating.pds.evaluation.PDSDataRetriever.recuperaClasseCGR(PDSDataRetriever.java:93)
at com.cervedgroup.rating.pds.evaluation.PDSDataRetriever.recuperaDatiPreliminariGriglie(PDSDataRetriever.java:52)
at com.cervedgroup.rating.pds.evaluation.PDSDataRetriever.evaluate(PDSDataRetriever.java:38)
at com.cervedgroup.rating.pds.orchestratore.invoker.PDSDataRetrieverInvoker.avviaDataRetrieving(PDSDataRetrieverInvoker.java:58)
at com.cervedgroup.rating.pds.orchestratore.invoker.PDSDataRetrieverInvoker.invoke(PDSDataRetrieverInvoker.java:32)
at sun.reflect.GeneratedMethodAccessor67.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.expression.spel.support.ReflectiveMethodExecutor.execute(ReflectiveMethodExecutor.java:69)
at org.springframework.expression.spel.ast.MethodReference.getValueInternal(MethodReference.java:83)
at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:57)
at org.springframework.expression.spel.ast.SpelNodeImpl.getTypedValue(SpelNodeImpl.java:102)
at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:102)
at org.springframework.integration.util.AbstractExpressionEvaluator.evaluateExpression(AbstractExpressionEvaluator.java:126)
at org.springframework.integration.util.MessagingMethodInvokerHelper.processInternal(MessagingMethodInvokerHelper.java:225)
at org.springframework.integration.util.MessagingMethodInvokerHelper.process(MessagingMethodInvokerHelper.java:125)
at org.springframework.integration.handler.MethodInvokingMessageProcessor.processMessage(MethodInvokingMessageProcessor.java:73)
... 10 more
Is there a way to avoid this print on nohup?
Thank you very much
Upvotes: 4
Views: 6912
Reputation: 121550
As you know errorChannel
is created by Framework on background, but there is no restrictions to define it yourself.
By default its is PublishSubscribeChannel
and the Framework subscribes to it one handler - LoggingHandler
with ERROR
logging level.
So, if you don't interested in that default debaviour you can declare errorChannel
as it is appropriate for you environment.
From other side, as you are using it from <gateway>
, how about to use your own channel and not the default errorChannel
?
Upvotes: 4