I have yet to use JMS/MDB with Seam, but...
Are you using rich:message(s) or h:message(s) on your JSF/facelet? is there any
messages queued but not displayedin the console/server.log? h:message(s) you have to manually reRender to see the message(s).
post your xhtml.
also, consider upgrading to Seam 2.x.
Your message driven bean is outside scope of FacesMessages (conversation). So you are adding a FacesMessage to a temporary conversation context which has no relation to the page the user is viewing.
Consider raising an event from your MDB, and observing it in your Resource class which sets a flag. Then use a4j:poll to check for flag status.
Be careful though, as MDB is outside even session scope, so there is no connection between the MDB and a particular user session.
Once you have solved the scope problems, if you keep on having problems to display messages have a look to this previous thread
Btw, other way to create a FacesMessage:
FacesMessage message = FacesMessages.createFacesMessage(FacesMessage.SEVERITY_ERROR,"your message");
here's an excerpt regarding MDB's from Seam in Action:
Although an MDB can act as a Seam component, the dynamics are very different. Message-driven beans can’t be instantiated by the application, which means they’re never associated with a context. Instead, they listen for messages on a JMS topic or queue and get instantiated by the EJB 3 container to handle a message when it arrives. They can, however, take advantage of bijection.
There was very little coverage of MDB's in the Seam ref manual or Seam in Action (or even the Yuan or Apress books as I recall)...
Seems like this should be a
stickyor best practice on how to effectively use MDB's in Seam apps...
Actually, they are contextual (stateless).