0

我需要将复杂的 Spring 定义设置中的服务加载到我的应用程序中,以便从中流式传输数据。

不幸的是,Spring不知何故对应用程序中的现有组件产生了连锁反应——即使在springmodule.xml中没有定义任何数据(有点令人担忧)

我怀疑受影响的组件是 Axis2(或 JibX)。他们本身并没有给出任何错误,只是在读取我试图向其写入消息的端口时——当不涉及弹簧时工作正常——并得到回复消息,他们只是挂起然后计时——出去。

因此,如果可能的话,我想启动一个弹簧上下文,让它创建我想要的组件,从 Spring 上下文中提取它们,然后关闭弹簧上下文,这样它就不会对其他组件产生这种连锁反应。除了在我使用过 Spring 后摆脱 Spring 之外,这一切都有效。

我已经尝试将 ApplicationContext 转换为 ClassApplicationContext (或其他任何名称)并调用 .stop() 和 .close()

但这并不能解决问题。

如果我知道如何执行此操作,或者如果它是合理的,我很乐意在单独的 JVM 或运行时启动 SpringContext,我只需要阻止它与现有应用程序交互(我怀疑这会检测到 Spring 是否已加载并且如果是的话,从中寻找东西,然后破坏一些东西)

如果您想在同一个程序中加载 2 个完全独立的弹簧上下文,并且将它们分开,这一定是一个类似的问题。

对不起,我知道这是漫无边际

4

1 回答 1

1

事实证明,真正的问题是 System.getProperties().put( ... ) 被编写 Spring-stuff 的人调用,而不是 Spring 本身。

他为他的组件想要的这些系统属性“挂钩”之一是挂钩到应用程序其他部分的 Axis2 并将其发送到不同的代理端口,覆盖它应该去的那个,然后挂在未建立连接时的端口。

于 2013-02-15T10:58:13.847 回答