ich durch unten Post ging: In spring integration, how do I catching different exceptions?int-ip: tcp-Verbindung-event-Inbound-Kanal-Adapter funktioniert nicht, wenn ich TcpConnectionExceptionEvent
Danach habe ich, wie unten für org.springframework.integration.ip.tcp.connection.TcpConnectionExceptionEvent
Ereignishandler definiert:
<int:gateway id="gateway" service-interface="com.tcpclient.ClientGateway"
default-request-channel="tcp-client-input"
default-reply-channel="message"/>
<int-ip:tcp-outbound-channel-adapter
id="outBoundClient" channel="tcp-client-input"
retry-interval="60000" auto-startup="true"/>
<int-ip:tcp-inbound-channel-adapter
id="inBoundClient" channel="message" auto-startup="false"
retry-interval="60000"/>
<int-ip:tcp-connection-event-inbound-channel-adapter
channel="tcpReceiveError"
event-types="org.springframework.integration.ip.tcp.connection.TcpConnectionExceptionEvent"/>
Mein Service-Aktivator ist:
@Component
public class ErrorHandler{
private static final Logger logger = LoggerFactory.getLogger(ErrorHandler.class);
@ServiceActivator(inputChannel = "tcpReceiveError")
public void handleError(Message m) {
logger.error("TcpError", m.getPayload());
}
}
An erster Stelle, wenn Host nicht nach oben oder Port ist nicht geöffnet, wenn ich versuche, zum ersten Mal eine Verbindung herzustellen, meine handleError(Message m)
wird nicht wie unten Gespräch ausgeführt.
Aber einmal angeschlossen und ich beginne Nachrichten zu empfangen, wenn der Server zwischen Port oder geht in der schließt, wird handleError(Message m)
nicht ausgeführt.
Bitte lassen Sie mich wissen, wenn ich einige falsche Konfigurationen an Ort und Stelle habe.
Ja, es basiert auf der gleichen question.Yes, ich sehe, dass im Protokoll zu warnen. Ich werde die Lösung versuchen und zurückkommen, wenn ich Schluckauf sehe. Nochmals vielen Dank :) –
Eine Frage, 'wenn Sie die Verbindung Factory erstellen, müssen Sie die Eigenschaft festlegen '- Sollte ich Publisher-Eigenschaft festlegen? Wenn ja, mit was? Ich meine Soll ich setApplicationEventPublisher (ApplicationEventPublisher applicationEventPublisher) aufrufen? –
Wie ich in der Antwort sagte - wenn die Bean, die die Fabrik erstellt, "ApplicationEventPublisherAware" ist, wird Ihnen der Herausgeber gegeben - im Setter speichern Sie es in einem Feld ('this.applicationEventPublisher = applicationEventPublisher'); Wenn Sie die Verbindungsfactory erstellen, geben Sie sie dort ein. Ja; 'setApplicationEventPublisher (this.applicationEventPublisher)'. –