problema configurar JBoss para trabajar con JNDI

Estoy tratando de vincular la conexión a la base de datos utilizando JNDI en mi aplicación que se ejecuta en JBoss. Hice lo siguiente:

  1. Creé el archivo de fuente de datos oracle-ds.xml y lo llené con los elementos xml relevantes:
  bilby ...   

y póngalo en la carpeta \ server \ default \ deploy

  1. Añadido el archivo jar de oracle relevante

  2. que en mi aplicación realicé:

JndiObjectFactoryBean factory = new JndiObjectFactoryBean ();

  factory.setJndiName("bilby"); try{ factory.afterPropertiesSet(); dataSource = factory.getObject(); } catch(NamingException ne) { ne.printStackTrace(); } 

y esto provoca el error:

javax.naming.NameNotFoundException: bilby no enlazado

luego en la salida después de que ocurrió este error vi la línea:

18: 37: 56,560 INFO [ConnectionFactoryBindingService] ConnectionManager enlazado ‘jb oss.jca: service = DataSourceBinding, name = bilby’ al nombre JNDI ‘java: bilby’

Entonces, ¿cuál es mi problema de configuración? Creo que puede ser que JBoss primero cargue y ejecute el archivo .war de mi aplicación y solo entonces cargue el archivo oracle-ds.xml que contiene mi definición de fuente de datos. El problema es que ambos están ubicados en la misma carpeta. ¿Hay una manera de definir la prioridad de cargarlos, o quizás este no sea el problema?

¿Alguna idea?

Debe usar dicha construcción para llamar a Datasource: java: bilby.

Puedes leer mas al respecto aquí:

Nombre y directorio (JNDI) – JBOSS jndi Fuente de datos: jdbc no vinculado

Para comprobar cómo se enlaza el origen de datos en el árbol JNDI, debe usar jmx-console http: // localhost8080 / jmx-console / HtmlAdaptor? Action = inspectMBean & name = jboss% 3Service% 3DJNDIView e invocar el método de list() .

Las fonts de datos están registradas bajo “jdbc”. En tu caso “jdbc / bilby”

EDIT: Ese fue un ejemplo que funciona para mí sin la spring. Ahora encontramos este ejemplo que inyecta un nombre JNDI más completo.