我的应用程序应该与两个外部系统A和B通讯。因此,我实际上正在创建2个这样的容器:
from flask import Flask
from flask_restplus import Resource, Api
from flask_restplus.api import Swagger
import requests
import json, yaml
app = Flask(__name__) # Create a Flask WSGI application
api = Api(app) # Create a Flask-RESTPlus API
@api.route('/hello') # Create a URL route to this resource
class HelloWorld(Resource): # Create a RESTful resource
def get(self):
return {'hello': 'world'}
@api.route('/swagger.yml')
class HelloWorld(Resource):
def get(self):
url = 'http://localhost:5000/swagger.json'
resp = requests.get(url)
data = json.loads(resp.content)
with open('yamldoc.yml', 'w') as yamlf:
yaml.dump(data, yamlf, allow_unicode=True)
return {"message":"Yaml document generated!"}
if __name__ == '__main__':
app.run(debug=True)
连接工厂的创建是这样的:
private DefaultMessageListenerContainer createContainer(Conf conf) {
DefaultMessageListenerContainer jmsCnr= new DefaultMessageListenerContainer();
jmsCnr.setConnectionFactory(connectionFactoryAdapter);
jmsCnr.setDestinationResolver(destinationResolver);
jmsCnr.setDestinationName(destinationName);
jmsCnr.setMessageListener(MyClass);
jmsCnr.initialize();
return jmsCnr;
}
在创建容器之后,我将其循环并调用start()。 一切正常,如果消息发送到外部系统A,我的侦听器正在接收消息。
但是,如果我将启动类配置为为外部系统A和B创建两个容器,那么我不会从系统A的队列中接收消息,而是从系统B的消息中接收消息。
同样,我使用的是没有Spring上下文的spring实现,一切都是程序化的。
我的问题是,我在哪里缺少什么?似乎为外部系统B创建的第二个DefaultMessageListenerContainer实例正在覆盖前一个。