У меня есть две службы, которые используют JPO в Spring Boot, и первая из них отправляет сообщение, а второй получает его, сохраняет канал связи с первой службой и отправляет ответ. Вот код: < /p>
@Slf4j
@Service
public class HandleMsg implements ISORequestListener {
private static ISOSource clientConnection;
@Override
public boolean process(ISOSource source, ISOMsg m) {
clientConnection = source;
try {
if ("0800".equals(m.getMTI())) {
ISOMsg r = (ISOMsg) m.clone();
r.setResponseMTI();
r.set(33, "Good Message");
source.send(r);
return true;
}
} catch (ISOException | IOException e) {
log.error(e.getMessage());
}
return false;
}
public void sendMessageToService(String message) {
try {
if (Objects.isNull(clientConnection) || !clientConnection.isConnected()) {
log.error("Client connection is null!");
return;
}
ISOMsg serverPush = new ISOMsg();
serverPush.setMTI("0210");
serverPush.set(33, message);
clientConnection.send(serverPush);
} catch (IOException | ISOException e) {
throw new RuntimeException(e);
}
}
< /code>
и его .xml config для jpos: < /p>
10000
network-out
network-in
< /code>
Как вы можете видеть, во время получения я сохраняю канал соединения источника сообщения, а позже я могу позвонить в метод класса в любом месте, и если канал все еще активен, а затем отправляю сообщение во вторую службу, используя его.
Но этот подход создает проблемы, с тех пор, как во второй сервис будет способен отправить сообщение на второе, это первое, что нужно сначала отправить во вторую службу < /p /p,>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> «Паролиз», подобный: моему, на первый взгляд, сначала необходимо отправить во вторую службу < /p, чтобы быть способным отправить следующее сообщение. В тот момент, когда первая служба соединяет и создает канал связи с первой службой, сообщение об этом появляется в журналах первой службы: < /p>
< /code>
и First Services .xml config для JPO для создания канала соединения: < /p>
my-send
my-receive
${client.reconnect_delay}
< /code>
То есть он понимает, что он уже связан. Мне нужно, чтобы он сохранил данные этого канала в isoSource, чтобы сервер (вторая служба) я мог отправлять сообщения в первую службу, не получая от него сообщения.
Подробнее здесь: https://stackoverflow.com/questions/795 ... o-the-jpos