The mapMessage.getString() is allways null in the following run method of a Thread. The same in the MDB direct outputs data.
public void run() { while (true) { try{ System.out.println("run..."); Message msg = getSubscriber().receive(0); MapMessage mapMessage = (MapMessage) msg; String rssfeed = mapMessage.getString("rssfeed"); this.applet.rssfeed = rssfeed; System.out.println("feed: " + rssfeed); }catch(Exception e){ e.printStackTrace(); } applet.repaint(); } }
<message-driven> <ejb-name>RssMessageBean</ejb-name> <ejb-class>ejb.RssMessageBean</ejb-class> <transaction-type>Container</transaction-type> <acknowledge-mode>Auto-acknowledge</acknowledge-mode> <message-driven-destination> <destination-type>javax.jms.Topic</destination-type> <subscription-durability>NonDurable</subscription-durability> </message-driven-destination> </message-driven>
<message-driven> <ejb-name>RssMessageBean</ejb-name> <configuration-name>Standard Message Driven Bean</configuration-name> <destination-jndi-name>topic/RssTopic</destination-jndi-name> </message-driven>