Ich habe eine http eingehende Gateway und definiert einen Fehlerkanal zum Gateway.MessageTransformation Ausnahme bei der Fehlerbehandlung in Spring Integration
<int-http:inbound-gateway
request-channel="requestChannel" reply-channel="replyChannel"
supported-methods="POST" request-payload-type="com.test.RequestWsDTO"
path="/trips/modify" error-channel="errorChannel" >
<int-http:request-mapping consumes="application/json" produces="application/json" />
</int-http:inbound-gateway>
Von dem Gateway, geht es zu einem Transformator, um die Nachricht an eine entsprechende Anforderung an Transformation für ws
<int:transformer id="segmentCancelTransformer" ref="segmentCancelTransformerBean" input-channel="segmentCancelChannel"
method="transform" output-channel="rcsChannel"/>
<beans:bean id="segmentCancelTransformerBean" class="com.test.SegmentCancelRequestTransformer" />
outboundgateway ich eine Laufzeitausnahme aus dem Transformator zu werfen.
Ich habe einen Service-Aktivator definiert die Ausnahme
<int:service-activator input-channel="errorChannel" ref="exceptionhandler" method="createErrorResponse"/>
<beans:bean id="exceptionTransformer" class="com.test.ExceptionHandler" />
In der Exceptionklasse zu handhaben, ich bin Umgang mit der Ausnahme wie
public ErrorDTO createErrorResponse(ErrorMessage msg) {
System.out.println("Exception occured "+msg.getPayload());
ErrorDTO dto=new ErrorDTO();
......................
msg.getPayload() zeigt die Ausnahme zu sein von "org.springframework.integration.transformer.MessageTransformationException"
Ausnahmemeldung Stacktrace:
Exception occured org.springframework.integration.transformer.MessageTransformationException: Failed to transform Message; nested exception is org.springframework.messaging.MessageHandlingException: nested exception
Was mache ich hier falsch?
Sie tun absolut richtig. Aber was ist die Frage? Vielleicht solltest du wirklich diese verschachtelte Ausnahme als Antwort betrachten? Bitte formuliere dein Problem um und erkläre, was du erreichen willst. –
Wenn ich eine benutzerdefinierte Ausnahme auswerfe, erhalte ich immer MessageTransformationException, und die ausgelöste Ausnahme kommt im verschachtelten Ausnahmeteil. Ich denke nicht, dass das richtig ist. Ich sollte eine Ausnahme vom Typ MessageHandlingException bekommen. Ist es nicht? Nach meinem Verständnis wird die benutzerdefinierte Ausnahme nicht korrekt im Fehlerkanal umgewandelt, daher immer eine Ausnahme für die Umwandlung geben. Ich möchte wissen, ob ich etwas verpasst habe? –