<!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="https://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;">
    Mapping global jndi to enc
</h3>
<span style="margin-bottom: 10px;">
    created by <a href="https://community.jboss.org/people/tomas_toss">Tomas Toss</a> in <i>Beginner's Corner</i> - <a href="https://community.jboss.org/message/773430#773430">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 style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I apologize in advance if the answear to my question is obvious. I started to use jboss as7 (and Java EE)&#160; last week, so I'm not that familiar with the terminology and concepts. </p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I have made some sample ejb3 applications (like helloWorld) and have got them running. However, I'm still (very) confused regarding the configuration of the resources (datasource) and the corresponding injection in the beans.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>For instance, I have created a simple statless bean which only task is to extract some values from a mysql database:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>[code]</p><pre class="jive-pre"><code class="jive-code jive-java"><font color="navy"><b>package</b></font> logic;
&#160;
&#160;
<font color="navy"><b>import</b></font> java.sql.Connection;
<font color="navy"><b>import</b></font> java.sql.ResultSet;
<font color="navy"><b>import</b></font> java.sql.SQLException;
<font color="navy"><b>import</b></font> java.sql.Statement;
&#160;
&#160;
<font color="navy"><b>import</b></font> javax.annotation.PostConstruct;
<font color="navy"><b>import</b></font> javax.annotation.PreDestroy;
<font color="navy"><b>import</b></font> javax.annotation.Resource;
<font color="navy"><b>import</b></font> javax.ejb.Remove;
<font color="navy"><b>import</b></font> javax.ejb.Stateful;
<font color="navy"><b>import</b></font> javax.sql.DataSource;
&#160;
&#160;
<font color="darkgreen">/**
 * Session Bean implementation class SimpleBean
 */</font>
@Stateless
<font color="navy"><b>public</b></font> <font color="navy"><b>class</b></font> SimpleBean <font color="navy"><b>implements</b></font> SimpleBeanRemote <font color="navy">{</font>
&#160;
&#160;
&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;@Resource(name=<font color="red">"mysqlDS"</font>, mappedName = <font color="red">"java:jboss/datasources/mysqlDS"</font>)
&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;<font color="navy"><b>private</b></font> DataSource dataSource;
&#160;
&#160;
&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;<font color="navy"><b>private</b></font> Connection connection;
&#160;
&#160;
&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;@PostConstruct
&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;<font color="navy"><b>public</b></font> <font color="navy"><b>void</b></font> openConnection() <font color="navy">{</font>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font color="navy"><b>try</b></font> <font color="navy">{</font>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;connection = dataSource.getConnection();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font color="navy">}</font> <font color="navy"><b>catch</b></font> (SQLException e) <font color="navy">{</font>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;e.printStackTrace();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font color="navy">}</font>
&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;<font color="navy">}</font>
&#160;
&#160;
&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;@PreDestroy
&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;<font color="navy"><b>public</b></font> <font color="navy"><b>void</b></font> closeConnection() <font color="navy">{</font>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font color="navy"><b>try</b></font> <font color="navy">{</font>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font color="navy"><b>if</b></font>(connection!=<font color="navy"><b>null</b></font>)<font color="navy">{</font>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;connection.close();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font color="navy">}</font>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font color="navy">}</font> <font color="navy"><b>catch</b></font> (SQLException e) <font color="navy">{</font>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;e.printStackTrace();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font color="navy">}</font>
&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;<font color="navy">}</font>
&#160;
&#160;
&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;<font color="navy"><b>public</b></font> String test() <font color="navy">{</font>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;String msg = <font color="red">""</font>;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font color="navy"><b>try</b></font> <font color="navy">{</font>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Statement statement = connection.createStatement();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;String sql = <font color="red">"SELECT * from test"</font>;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;statement.execute(sql);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ResultSet rs = statement.getResultSet();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;rs.first();
&#160; 
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;msg = rs.getString(1);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;msg += <font color="red">" "</font> + rs.getInt(2);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font color="navy">}</font> <font color="navy"><b>catch</b></font> (SQLException e) <font color="navy">{</font>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;e.printStackTrace();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font color="navy">}</font>
&#160;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font color="navy"><b>return</b></font> <font color="red">"SimpleBean: "</font> + msg;
&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;<font color="navy">}</font>
&#160;
&#160;
&#160;
&#160;
&#160;
&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;<font color="navy">}</font>
&#160;
<font color="navy">}</font>
&#160;
</code></pre><p>[/code]</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I have been able to run this code successfully, but I feel that the explicit lookup with<strong> jboss:java/datasources/mysqlDS </strong>is not a good (portable) solution. From what I have gathered, it is possible to map the global resource name to a logical application specific name (e.g. <strong>jdbc/mysql</strong>). </p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I have tried using jboss-ejb3.xml and ejb-jar.xml to create this mapping, but can't figure out how to make it work. Am I on the right track, and if so could you give me a concrete example of such a mapping?</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>(I find it very hard to find well structured information about these kind of issues. Are there any online resources for beginners that covers ejb3/jboss as7?)</p></div>

<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
    <p style="margin: 0;">Reply to this message by <a href="https://community.jboss.org/message/773430#773430">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in Beginner's Corner at <a href="https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2075">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


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

</div>

</body>
</html>