gpt4 book ai didi

java - jPOS 无法从服务器接收 ISOMsg

转载 作者:行者123 更新时间:2023-11-30 10:04:36 24 4
gpt4 key购买 nike

我通过this一步步设置jPOS JAR服务器.我通过以下代码创建服务器:

public class jPOSServer implements ISORequestListener {

public static void main(String[] args) {
try {
Logger logger = new Logger();
logger.addListener(new SimpleLogListener(System.out));

XMLChannel serverChannel = new XMLChannel("localhost", 9000, new XMLPackager());
((LogSource) serverChannel).setLogger(logger, "server-channel-logger");

ISOServer isoServer = new ISOServer(9000, serverChannel, null);
isoServer.setLogger(logger, "server-logger");
isoServer.addISORequestListener(new jPOSServer());

new Thread(isoServer).start();
} catch (Exception e) {
e.printStackTrace();
}
}

@Override
public boolean process(ISOSource isoSource, ISOMsg isoMsg) {
ISOMsg m = isoMsg;
try {
m.setMTI("0830");
m.set(11, "000002");
m.set(41, "00000002");
isoSource.send(m);
return true;
} catch (ISOException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
}

登录 JAR 服务器在这里:

<log realm="org.jpos.transaction.TransactionManager" at="2019-04-24T15:25:04.787" lifespan="24ms">                       
<abort>
txnmgr-1:idle:1
<context>
TIMESTAMP: Wed Apr 24 15:25:04 IRDT 2019
SOURCE: org.jpos.iso.channel.XMLChannel@7217f905
REQUEST:
<isomsg direction="incoming">
<!-- org.jpos.iso.packager.XMLPackager -->
<field id="0" value="0800"/>
<field id="11" value="000001"/>
<field id="41" value="00000001"/>
<field id="70" value="301"/>
</isomsg>
RESULT:
<result>
<fail>
[MISCONFIGURED_ENDPOINT] o.j.t.p.QueryHost.prepare:60 'DESTINATION' not present in Context
</fail>
</result>
LOGEVT:
<info>
RESPONSE not present
</info>
</context>
prepare: o.j.t.p.QueryHost ABORTED READONLY NO_JOIN
prepareForAbort: o.j.t.p.SendResponse
abort: o.j.t.p.SendResponse
in-transit=0, head=2, tail=2, paused=0, outstanding=0, active-sessions=2/128, tps=0, peak=0, avg=0.00, elapsed=22ms
<profiler>
prepare: o.j.t.p.QueryHost [20.5/20.5]
prepareForAbort: o.j.t.p.SendResponse [0.8/21.3]
abort: o.j.t.p.SendResponse [0.8/22.1]
end [28.3/50.5]
</profiler>
</abort>
</log>
<log realm="xml-server-8000/127.0.0.1:61804" at="2019-04-24T15:25:07.721" lifespan="3002ms">
<receive>
<io-timeout/>
</receive>
</log>
<log realm="xml-server-8000.server.session/127.0.0.1:61804" at="2019-04-24T15:25:07.725">
<session-end/>
</log>
<log realm="org.jpos.q2.iso.ChannelAdaptor" at="2019-04-24T15:29:57.225" lifespan="1ms">
<warn>
channel-receiver-jpos-receive
Read timeout / EOF - reconnecting
</warn>
</log>

我通过telnet localhost 8000将数据发送到端口8000上的JAR服务器,JAR服务器将数据传递到端口9000上的服务器。JAR服务器接收数据和日志数据,将数据发送到服务器,服务器接收数据。但是 Read timeout 发生了错误。我调试了 JAR 文件,发现错误是在 BaseChannel.java:777 上的 b = this.streamReceive(); 处触发的。我怎样才能解决这个问题?谢谢。

最佳答案

b = this.streamReceive() 中的错误是什么意思?您的问题似乎是这样的:

        <result>
<fail>
[MISCONFIGURED_ENDPOINT] o.j.t.p.QueryHost.prepare:60 'DESTINATION' not present in Context
</fail>
</result>

这意味着 QueryHost 参与者不知道将消息发送到哪里,这就是您没有响应的原因,您需要将目标 mux 添加到上下文中,显然在“DESTINATION”键下。我不知道你是如何创建上下文的,如果它使用的是 IncomingListener 你就错过了这个条目

<property name="ctx.DESTINATION" value="jPOS-AUTORESPONDER" /> 

改变 jPOS-AUTORESPONDER 无论你的多路复用器名称是什么。

关于java - jPOS 无法从服务器接收 ISOMsg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55828678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com