2 개의 EJB 응용 프로그램 A와 B가 있습니다. 응용 프로그램 B (Message Driven Bean)에 메시지를 보내는 비 상태 세션이 있습니다. App B가 앱 A에 메시지를 다시 보냅니다.메시지 리스너에서 값을 가져 와서 주 메뉴에서 인쇄합니다.
이제는 A의 상태 비 저장 세션빈에있는 메시지 수신기에서 원하는 값을 갖게되었습니다.하지만 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을 반환합니다.
어떻게해야합니까?
일부 코드를 보지 않고 무엇을 하려는지 이해하기가 어렵습니다. 지금까지 가지고있는 코드를 보여줄 수 있습니까? – NilsH
@NilsH이 (가) 내 게시물을 편집했습니다. – user1182637
유스 케이스가 조금 이상하므로 테스트 용으로 만 사용한다고 가정합니다. 'onMessage'가 호출 된 것을 확인 했습니까? – NilsH