<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">
<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>
                                <td>
                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>
                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
Re: Messaging configuration in AS 7
</h3>
<span style="margin-bottom: 10px;">
created by <a href="http://community.jboss.org/people/tomjenkinson">Tom Jenkinson</a> in <i>JBoss AS7 Development</i> - <a href="http://community.jboss.org/message/614825#614825">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">
<div class="jive-rendered-content"><p>Is there an example of best practice for the route you suggested? Lets say I deployed a dummy EJB so that I could get an MDB:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>public interface MyFakeMDB extends javax.jms.MessageListener {</p><p>}</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>@Stateless</p><p>@Singleton</p><p>public class MyFakeMDBImpl MyFakeMDB {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>     public void onMessage(Message message) {</p><p>     }</p><p>}</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Assuming this is totally a fake EJB and I just want it to have MDB like behavior,  where should I put the JMS code to bind my message listener to the queue. </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>I don't mean what code do I need to write:</p><p>MessageConsumer mc = ((ConnectionFactory) new InitialContent().lookup("ConnectionFactory")).createConnection().createSession().createMessageConsumer((Destination)new InitialContext().lookup("foo"));</p><p>mc.setMessageListener(this);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>What I mean is, where should this code go? I guess the constructor, but with AS7, will the EJB constructor only be called when someone accesses my the EJB through an interface, or is an instance of my EJB always created as soon as I deploy my ear/war?</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><quick grep of the internet/></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Actually, I just checked online and can see that I can put this in the constructor,and put the following annotation as well:</p><p>javax.ejb.Startup</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Which leads to the following:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>public interface MyFakeMDB extends javax.jms.MessageListener {</p><p>}</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>@Stateless</p><p>@Singleton</p><p>@Startup</p><p>public class MyFakeMDBImpl implements MyFakeMDB {</p><p>     @Inject</p><p>     Context ic;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>     MessageConsumer mc;</p><p>     public MyFakeMDBImpl() {</p><p>          ConnectionFactory cf =  (ConnectionFactory) ic.lookup("ConnectionFactory");</p><p>          Connection c = cf.createConnection();</p><p>          Session s =  c.createSession();</p><p>          Destination d =  (Destination)ic.lookup("foo");</p><p>          mc = s.createMessageConsumer(d);</p><p>          mc.setMessageListener(this);</p><p>     }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>     public void onMessage(Message message) {</p><p>     }</p><p>}</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Does that look like the best way to do this? I suppose the only issue with this would be if I wanted JTA? In which case I would end up writing quite a bit more code to manage "XAConnectionFactory" code?</p></div>
<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
<p style="margin: 0;">Reply to this message by <a href="http://community.jboss.org/message/614825#614825">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in JBoss AS7 Development at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2225">Community</a></p>
</div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>