- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在运行 Spring Boot 应用程序。在 Spring 启动后,我们尝试在其中运行 JPOS QServer。它启动了 Q2,我们可以从模拟器 clinet 接收 ISOmsgs,我们也可以响应 beck。
为了启动第二季度,我们使用了 xml 配置,如下所示。
<server class="org.jpos.q2.iso.QServer" name="Server-A-Server" logger="Q2">
<attr name="port" type="java.lang.Integer">8118</attr>
<attr name="maxSessions" type="java.lang.Integer">100</attr>
<attr name="minSessions" type="java.lang.Integer">0</attr>
<!-- Format server name: "Project Name" + "-" + "Channel" -->
<channel name="Server-A-Channel" class="org.jpos.iso.channel.XMLChannel" logger="Q2"
packager="org.jpos.iso.packager.XMLPackager">
</channel>
<request-listener class="fi.neocard.jpos.ISOMessageListener">
<property name="timeout" value="10000"/>
</request-listener>
正如你从上面的xml中看到的,它监听ISOMessangerListener类,这自然不是spring相关的类,而且我认为spring和QServer运行在不同的Servlet上。所以问题来了,我们这里没有任何 Spring 相关的 bean,而且我们不能 @Autowired 任何。但我们所有的业务逻辑都已经在spring中写好了。
到目前为止我们尝试过的内容
1) 保持应用程序上下文静态,并在 ISOMessageListener 中需要时使用它(在接收到监听器消息后,上下文为空)。
2)做这样的事情。 SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
并阅读了大量文章,了解如何从 spring 外部获取上下文。
到目前为止,我检查了 jvisualvm
Q2 和 Springboot 都作为单个应用程序运行。
希望至少得到一些建议。
最佳答案
如果有人对我如何让它工作感兴趣,我不是通过 Q2(xml 文件)运行 ISOServer,而是在我的 spring 已经启动时手动执行此操作,然后获取 ISORequestListener 的现有 bean 并将其传递给服务器。
@Component
public class ISOserver implements ISORequestListener {
@Autowired
ISOserver isOserver;
@EventListener(ContextRefreshedEvent.class)
public void contextRefreshedEvent() throws Exception{
Logger logger = new Logger();
logger.addListener(new SimpleLogListener(System.out));
ServerChannel channel = new XMLChannel(new XMLPackager());
((LogSource) channel).setLogger(logger, "channel");
ISOServer isoServer = new ISOServer(8118, channel, null);
isoServer.setLogger(logger, "server");
isoServer.addISORequestListener(isOserver);
new Thread(isoServer).start();
}
@Override
public boolean process(ISOSource isoSource, ISOMsg receivedISOmsg) {
return false;
}
}
关于java - 如何在 JPOS QServer 监听器中 @autowired spring beans?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44652231/
我是一名优秀的程序员,十分优秀!