2016-08-31 7 views
0

Camel 2.15.4を使用してSwingクライアントをOSGiサーバーに接続しています。Camel noErrorHandlerがスタックトレースで警告メッセージを記録するのはなぜですか?

サーバーでは、特定の状況下で、RuntimeExceptionのサブクラスをクライアントに伝播します。私たちが使用している私たちのルートの建物で

:私たちはこれらのサーバーのいずれかのエラーをスロー

errorHandler(noErrorHandler()); 

しかし、すべての時間は、我々は完全なスタックトレースをWARNログメッセージを取得します。テスターは、問題のように見えるので、これらのログメッセージを探しています。

これらの警告のログを無効にする方法はありますか?

は、ここに例です:キャメルの2.11.0と春のDSLを使用し、当社のサーバーの以前のバージョンでは、

16:37:12,565 | WARN | che.camel.camel-core | Execution of JMS message listener failed. Caused by: [org.apache.camel.RuntimeCamelException] 
org.apache.camel.RuntimeCamelException: xxxxxx.yyyyyyy.exceptions.CustomException: blah 
at org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1619) 
at org.apache.camel.component.bean.BeanInvocation.invoke(BeanInvocation.java:87) 
at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:134) 
at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109) 
at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:68) 
at org.apache.camel.component.bean.BeanProducer.process(BeanProducer.java:38) 
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:129) 
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77) 
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:91) 
at uniworks.camel.interceptor.CamelInterceptor$1.process(CamelInterceptor.java:79) 
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:91) 
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:448) 
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190) 
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190) 
at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109) 
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:87) 
at org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:103)[58:org.apache.camel.camel-jms:2.15.4] 
at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:569)[176:org.apache.servicemix.bundles.spring-jms:3.2.14.RELEASE_1] 
at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:507)[176:org.apache.servicemix.bundles.spring-jms:3.2.14.RELEASE_1] 
at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:474)[176:org.apache.servicemix.bundles.spring-jms:3.2.14.RELEASE_1] 
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:325)[176:org.apache.servicemix.bundles.spring-jms:3.2.14.RELEASE_1] 
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:263)[176:org.apache.servicemix.bundles.spring-jms:3.2.14.RELEASE_1] 
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1103)[176:org.apache.servicemix.bundles.spring-jms:3.2.14.RELEASE_1] 
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1095)[176:org.apache.servicemix.bundles.spring-jms:3.2.14.RELEASE_1] 
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:992)[176:org.apache.servicemix.bundles.spring-jms:3.2.14.RELEASE_1] 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_92] 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_92] 
at java.lang.Thread.run(Thread.java:745)[:1.8.0_92] 

、我々は、と私たちのルートコンテキストを定義した:

<camel:errorHandler id="noErrorHandler" type="NoErrorHandler"/> 

<camel:camelContext id="blah_camel" errorHandlerRef="noErrorHandler"> 
    ..... 

と、私たちはやりましたこれらの警告ログメッセージを取得しないでください。

答えて

1

これは実際にCamelのエラーハンドラではなく、このログを実行するJMSコンポーネントです。 JMSコンポーネントには、例外のフォールバックロギングがあり、JMSメッセージが正常に処理されなかったことを示します。 JMSコンポーネント/エンドポイントのerrorHandlerLoggingLevelerrorHandlerLogStackTraceの2つのオプションが表示されます。このコンポーネントは、/ configureをオフ/オフにすることができます。http://camel.apache.org/jms

+0

ありがとうございます。 'JmsComponent'クラスに' setErrorHandlerLogStackTrace(false) 'メソッドもあることがわかります。 – DuncanKinnear

関連する問題