初めてキャメルルートを使用すると、すべてのApacheドキュメントとsofの情報が非常に簡単になります....(これは、Apache CamelとCamel Salesforceコンポーネントはlibs)Camel Route onExcpetion/errorHandleがSalesforce Compotent例外をキャッチしない
class SFRouteClass extends RouteBuilder {
@Override
void configure() {
def camelRouteId
from("direct:moveFailedMessage")
.process { Exchange exchange ->
exchange.out
}
from('direct:sfe')
.onException(Exception.class)
.to('log:sfe?level=INFO&showHeaders=true&multiline=true')
.to('direct:moveFailedMessage')
.maximumRedeliveries(0)
.end()
.routeId('sfe')
.enrich('direct:salesforceCheckLeadByIDUserHashId'.toString(), new AggregationStrategy() { ..... }
}
org.apache.camel.component.salesforce.api.SalesforceException: Error {404:Not Found} executing {GET:https://.....}
at org.apache.camel.component.salesforce.internal.client.AbstractClientBase$1.onComplete(AbstractClientBase.java:176)
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:193)
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:185)
at org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:453)
at org.eclipse.jetty.client.HttpReceiver.responseSuccess(HttpReceiver.java:400)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.messageComplete(HttpReceiverOverHTTP.java:266)
at org.eclipse.jetty.http.HttpParser.parseContent(HttpParser.java:1487)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1245)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.parse(HttpReceiverOverHTTP.java:156)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:117)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:69)
at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:89)
at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:123)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.camel.component.salesforce.api.SalesforceException: {errors:[{"errorCode":"NOT_FOUND","message":"The requested resource does not exist"}],statusCode:404}
at org.apache.camel.component.salesforce.internal.client.DefaultRestClient.createRestException(DefaultRestClient.java:121)
at org.apache.camel.component.salesforce.internal.client.AbstractClientBase$1.onComplete(AbstractClientBase.java:175)
... 16 common frames omitted
エラーがない場合に機能します。私の問題は、onExceptionは決して引き起こさないということです。グローバルerrorHandlerを設定しようとしましたが、グローバルonExcpetionを作成しようとしました。エラーをキャッチするものは何もなく、私は理由を理解できません。
ありがとう!はい、他のクラスには、呼び出されたクラスのルートがありました。最初にそれを処理する必要があります。 < –