我正在尝试用Java中的消息驱动bean实现管道和过滤器模式,但我希望以一种队列可配置且bean在运行时创建的方式来实现。通过这种方式,更改过滤器的执行顺序将很容易。
我对Java EE非常陌生,当我过去使用MDB时,我总是这样做:
@MessageDriven(mappedName = "jms/myQueue", activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")
})
public class ReceiveMessageBean implements MessageListener {
这对我想要的东西不起作用。
我正在考虑做一个每个过滤器都可以继承的bean,这样我就可以把从队列中读取和写入的方法放在一个地方,就像这样:
public class StepBean {
public void createBean(String queueRead, String queueWrite) {
//make the bean listen from queueRead
//make the bean write to queueWrite
}
public void onMessage(Message message){
//get the message from queueRead and transform it to my own class
processMessage(myMessage);
}
public void processMessage(MyMessage message){
//each filter should implement this method
sendMessage(myMessage);
}
public void sendMessage(MyMessage message){
//send message to queueWrite
}
}
然后在我的ejb中有某种工厂,它为队列创建具有所需值的步骤bean。
但我对如何做到这一点几乎一无所知。我一直在研究this,但是因为我的been都是从队列中读取和写入的,所以它们不是严格意义上的MDB。
我使用的是GlassFish 4.1.2和Netbeans 8.2。
欢迎任何关于如何做到这一点或关于它是否可行的指导。
https://stackoverflow.com/questions/44590064
复制相似问题