JNDI no JBOSS

Estou tentando usar o JBoss como um provider JNDI. Para isso configurei um ds.xml para registrar um DataSource no JNDI e nesta configuração utilizei a tag <use-java-context>false</use-java-context>, porque eu preciso acessar esse DataSource de fora do JBoss, ou seja, vou utilizar de uma aplicação J2SE. Eu consigo recuperar vários objetos do JNDI, mas o DataSource não é possível. Quando eu faço o lookup com o nome do DataSource ele recupera um objeto que é do tipo javax.naming.Reference. Então se eu tentar fazer um cast para DataSource é jogada uma exceção de ClassCastException. Alguém pode me ajudar, ou sabe com instanciar o DataSource a partir deste objeto Reference ?

Toko,

Fiz um exemplo e funcionou perfeitamente. Rodei o JBoss no IP 192.168.1.26, o servidor de banco de dados Oracle no IP 192.168.1.3 e a aplicação no IP 192.168.1.32

public class AppTeste &#123;
    public static void main&#40;String&#91;&#93; args&#41; &#123;
        try &#123;
            AppTeste app = new AppTeste&#40;&#41;;
            Hashtable env = new Hashtable&#40;&#41;;
            env.put&#40;Context.INITIAL_CONTEXT_FACTORY, &quot;org.jnp.interfaces.NamingContextFactory&quot;&#41;;
            env.put&#40;Context.PROVIDER_URL, &quot;192.168.1.26&quot;&#41;;
            env.put&#40;Context.URL_PKG_PREFIXES, &quot;org.jboss.naming&#58;org.jnp.interfaces&quot;&#41;;
            Context ctx = new InitialContext&#40;env&#41;;

            javax.sql.DataSource ds = &#40;javax.sql.DataSource&#41;ctx.lookup&#40;&quot;java&#58;/OracleDataSource&quot;&#41;;
            java.sql.Connection conn = ds.getConnection&#40;&#41;;

            PreparedStatement p = conn.prepareStatement&#40;&quot;select * from crdcont&quot;&#41;;
            ResultSet rs = p.executeQuery&#40;&#41;;
            while&#40;rs.next&#40;&#41;&#41; &#123;
                String nome = rs.getString&#40;&quot;CNOMECONT&quot;&#41;;
                System.out.println&#40;nome&#41;;
            &#125;

        &#125; catch &#40;Exception ex&#41; &#123;
            ex.printStackTrace&#40;&#41;;
        &#125;
    &#125;
&#125;

No arquivo oracle-ds.xml

&lt;datasources&gt;
  &lt;local-tx-datasource&gt;
    &lt;jndi-name&gt;OracleDataSource&lt;/jndi-name&gt;
    &lt;use-java-context&gt;false&lt;/use-java-context&gt;
    &lt;connection-url&gt;jdbc&#58;oracle&#58;thin&#58;@//192.168.1.3&#58;1521/SERVICE&lt;/connection-url&gt;
    &lt;driver-class&gt;oracle.jdbc.driver.OracleDriver&lt;/driver-class&gt;
    &lt;user-name&gt;usuario&lt;/user-name&gt;
    &lt;password&gt;minhaSenha&lt;/password&gt;
      &lt;metadata&gt;
         &lt;type-mapping&gt;Oracle9i&lt;/type-mapping&gt;
      &lt;/metadata&gt;
  &lt;/local-tx-datasource&gt;
&lt;/datasources&gt;

Espero que te ajude.

@braços,
Cleiton