Входящий запрос обрабатывается jpos channel.xml вместо server.xml
Я отправляю запросы на сторонний сервер ISO, эта третья сторона также подключается к моему серверу JPOS ISO, чтобы отправлять мне запросы (входящие запросы). Прежде всего, я должен выполнить успешный вход в систему, а также отправить сетевые сообщения. Вход в систему и отправка сетевых сообщений работают должным образом. Я также могу отправлять успешные запросы на перевод средств третьей стороне.
Проблема теперь в том, что когда третья сторона инициирует запрос (входящие запросы) к моему серверу ISO, он переходит к 10_mychannel.xml вместо 50_my_server.xml. Как мне заставить его перейти в мой 50_my_server.xml и вызвать мой класс слушателя.
Обратите внимание, что я могу отправлять обычные запросы из моего небольшого основного класса java на ISOServer, который может вызывать мой 50_my_server.xml, после чего вызывается класс слушателя для обработки запроса.
Что я делаю неправильно. Мы будем очень благодарны за вашу помощь.
50_my_server.xml
<server class="org.jpos.q2.iso.QServer" logger="Q2" name="xml-server-7777" realm="xml-server-7777">
<attr name="port" type="java.lang.Integer">7777</attr>
<channel class="org.jpos.iso.channel.ASCIIChannel" packager="org.jpos.iso.packager.GenericPackager" type="server" logger="Q2" realm="xml-server-7777">
<property name="packager-config" value="cfg/customized2.xml" />
<property name="timeout" value="180000"/>
</channel>
<request-listener class="com.my.processor.myListener" logger="Q2" realm="incoming-request-listener" />
</server>
10_mychannel.xml
<?xml version="1.0" encoding="UTF-8"?>
<channel-adaptor name="mychannel-channel" logger="Q2">
<channel class="org.jpos.iso.channel.ASCIIChannel" type="client" connect="yes" logger="Q2" realm="post-channel" packager="org.jpos.iso.packager.GenericPackager">
<property name="packager-config" value="cfg/customize.xml" />
<property name="packager-logger" value="Q2" />
<property name="packager-realm" value="custom-packager" />
<property name="host" value="XXX.XXX.XXX.XXX" />
<property name="port" value="7777" />
<property name="length-digits" value="6" />
<property name="connection-timeout" value="30000" />
<property name="timeout" value="300000" />
</channel>
<in>my-channel-send</in>
<out>my-channel-receive</out>
<reconnect-delay>10000</reconnect-delay>
<keep-alive>yes</keep-alive>
</channel-adaptor>
Я также пробовал добавить ниже на канал, но это тоже не сработало.
Ниже приведен снимок экрана, показывающий сообщения "000000", полученные удаленным iso-сервером, к которому я сейчас подключен. Как мне перестать отправлять такие сообщения. Я обновил значение свойства length-digits до 4 и заметил, что нули уменьшились до 4 нулей '0000'. Попытка прокомментировать это свойство вызвала исключение. Есть идеи, как с этим справиться
1 ответ
Если запрос поступает из канала, это потому, что другая сторона отправляет свои запросы через это соединение, а не инициированное с него на ваш сервер.
Если вы хотите обрабатывать входящий запрос через свой канал, вы можете просто поместить QMUX для их обработки в прослушивателе запросов, аналогично тому, что вы пытаетесь достичь на своем сервере, например, из вашего другого вопроса
20_my_mux.xml
:
<?xml version="1.0" ?>
<mux class="org.jpos.q2.iso.QMUX" logger="Q2" name="my-mux">
<in>my-channel-receive</in>
<out>my-channel-send</out>
<ready>mychannel-channel.ready</ready>
<request-listener class="com.my.processor.myListener" logger="Q2" realm="incoming-request-listener" />
</mux>