我有 2 个 EJB 应用程序,A 和 B。A 有一个无状态会话,向应用程序 B(消息驱动 bean)发送消息。应用 B 将消息发送回应用 A。
现在,我在 A 中的无状态会话 bean 的消息侦听器中拥有了我想要的值。但我需要从 Main 中显示它。我尝试声明一个变量并将值存储在其中。但是当我从 Main 调用它时,值就丢失了。
@Stateful
public class AManagerBean implements ejb.AManagerRemote {
@Resource(mappedName = "jms/QueueConnectionFactory")
private ConnectionFactory queueConnectionFactory;
@Resource(mappedName = "jms/Queue")
private Queue queue;
private static int fineAmt;
......
static class AListener implements MessageListener{
public void onMessage(Message message){
.....
fineAmt = msg.getInt("fineAmt");
// I NEED FINEAMT TO SHOW IN MAIN CLASS
.....
}
}
public int returnFine(){
return fineAmt;
}
在主课...
public class Main {
@EJB
public static AManagerRemote amr;
public static void main(String[] args) {
......
System.out.println(amr.returnFine());
// ALWAYS RETURN 0
我需要 Fineamt 在主课上展示。但它总是返回null。
我该怎么做?