<!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;">
    EJB3 annotation question ...
</h3>
<span style="margin-bottom: 10px;">
    created by <a href="http://community.jboss.org/people/toddler">Todd Sandor</a> in <i>EJB3</i> - <a href="http://community.jboss.org/message/606338#606338">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><p>Hi ...</p><p>I am new to JBoss, EJB and EJB3 ...on a steep learning curve...</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>We are moving to JBoss 5.1.0 from 4.3.0 and as part of this would like to move from EJB to EJB3.&#160; I just read the following article: "EJB 3: From legacy technology to secret weapon" by Adam Bien here:</p><p><a class="jive-link-external-small" href="http://www.javaworld.com/javaworld/jw-10-2008/jw-10-ejb3.html">http://www.javaworld.com/javaworld/jw-10-2008/jw-10-ejb3.html</a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>For our EJB to EJB3 change, I've investigating using annotations as described in the above article. In our existing EJB implementation, we create the remote interface, home interface, bean class, deployment descriptors (ejb-jar.xml, jboss.xml), etc.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>In the above article, it talks about using Declarative injection for the client, using</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>@EJB</p><p>private Service service;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>and the container injects the ClientBean, etc...</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Our client implementation is multi-threaded, performs async requests and uses a per package InterfaceMgr that creates a separate bean per thread (uses a MAP ...).</p><p>We use stateful sessions.&#160; Had to do this as got EJBExceptions related to a Stateful bean being used with a different tx context (async requests via thread pool)....</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>So when a bean needs to be used the one doesn't existing for the thread/package, we create a new bean using the "Home".create() call. Code snippet ...</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>&#160; Object lNarrowTo = initialContext_.lookup(EJB_NAME);</p><p>&#160; MYCLASSHome = (EjbMYCLASSHome)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; PortableRemoteObject.narrow(initialContext_.lookup(EJB_NAME),</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; EjbMYCLASSHome.class);</p><p>...</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; bean = (EjbMYCLASS) PortableRemoteObject.narrow(</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; MYCLASSHome.create(...),</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; EjbMYCLASS.class);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Is it possible to create a new bean when required using an annotation, when we don't have the "Home" interface ...?&#160; If so, how?</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>The idea being using annotations for everything and not manually (via tools) creating the remote interface, home interface, bean class, deployment descriptors (ejb-jar.xml, jboss.xml), etc. as we currently do.&#160; I know we can continue to use all these artifacts, but ...</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Any suggested articles, tutorials, books I should read to come up to speed on this technology...</p><p>Thanks...</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/606338#606338">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in EJB3 at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2029">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


                </td>
            </tr>
        </tbody>
    </table>

</div>

</body>
</html>