source seguridad idioma example data conexiones como cambiar abrir 12c java jdbc weblogic datasource

java - idioma - seguridad weblogic



No se puede acceder al origen de datos weblogic de Java con el prefijo jdbc/ (9)

He creado dos fuentes de datos en weblogic con los nombres de jndi debajo

  • jdbc / testDatasource
  • testDatasource1

Puedo acceder a datasource testDatasource1 usando java, pero mientras accedo a dataource jdbc / testDatasource me pongo a continuación menciono el error

javax.naming.NameNotFoundException: While trying to lookup ''jdbc.testDatasource'' didn''t find subcontext ''jdbc''. Resolved '''' [Root exception is javax.naming.NameNotFoundException: While trying to lookup ''jdbc.testDatasource'' didn''t find subcontext ''jdbc''. Resolved '''']; remaining name ''jdbc/testDatasource''

parece que el prefijo jdbc / está dando problema.


En algunos casos, es causado por la fuente de datos que no está en el mismo destino con sus servidores. Los servidores que están utilizando el origen de datos se deben agregar a los mismos objetivos.


En mi caso, fue debido a que el origen de datos se destruyó durante el despliegue. La solución es agregar destroyMethod = ""

@Bean(name = "dataSource", destroyMethod="") public DataSource dataSource() { JndiDataSourceLookup lookup = new JndiDataSourceLookup(); return lookup.getDataSource(jndiName); }


Enfrenté el mismo problema y está solucionado ahora :)

La solución es,

String DATASOURCE_CONTEXT = prop.getProperty("tcDataSourceContext"); log("DATASOURCE_CONTEXT.."+DATASOURCE_CONTEXT); Properties env = new Properties( ); env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); env.put(Context.PROVIDER_URL,"t3://abc.com:8001"); Context initialContext = new InitialContext(env); DataSource datasource = (DataSource)initialContext.lookup(DATASOURCE_CONTEXT); if (datasource != null) { conn = datasource.getConnection(); } else{ log("Failed to lookup datasource."); }

1 #. abc.com es la URL del servidor donde se implementa WebLogic. 2 #. 8001 es el número de puerto donde el servidor de administración de WebLogic está escuchando.

3 #. Asegúrese de que lo siguiente esté configurado correctamente.

Incorrecto: tcDataSourceContext = java: comp / env / jdbc / datasourcename

Corregir uno: tcDataSourceContext = jdbc / datasourcename

4 #. Además, vaya al servidor de WebLogic y navegue a /Oracle/Middleware/wlserver_10.3/server/lib/ y ejecute el siguiente comando.

Comando: java -jar wljarbuilder.jar -profile wlfullclient5

El comando anterior crea un archivo jar con todo el jar dentro de la carpeta del servidor / lib de WebLogic y también lo coloca en la ruta de compilación del código de Java de su cliente y en la carpeta server / lib.

¡Espero que esto ayude! Amablemente avíseme si tiene algún problema.


Este error también ocurre cuando tenemos los mismos nombres JNDI definidos en dos fuentes de datos en weblogic (había creado dos para probar diferentes propiedades de Datasource). Tuve que eliminar uno de ellos y funcionó bien.


He enfrentado el mismo problema. Mi aplicación se conecta a Oracle DB que se ejecuta en un servidor Oracle Sql local (Oracle XE 11g). De otras respuestas que he visto, borrar la memoria caché / tmp, / cache e incluso / logs de Weblogic podría funcionar. Mi problema fue que el servicio local Oracle Service XE fue DETENIDO. Sé que es una tontería, pero podría ayudar. Entonces deberías hacer esto 3 cosas:
- limpiar cache;
- verificar si el servicio del servidor DB se está ejecutando;
- intente reiniciar el servidor de WEBLOGIC; Esas cosas anteriores funcionaron para mí.


Intente lo siguiente, asegúrese de que el puerto en Context.PROVIDER_URL sea el puerto del servidor weblogic en el que va a ejecutar su aplicación.

Context ctx = null; Hashtable ht = new Hashtable(); ht.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory"); ht.put(Context.PROVIDER_URL,"t3://localhost:8002"); Connection conn = null; Statement stmt = null; ResultSet rs = null; try { out.println("Connecting to DB......"); ctx = new InitialContext(ht); javax.sql.DataSource ds= (javax.sql.DataSource) ctx.lookup ("jdbc/postdbsrc"); conn = ds.getConnection();


Puede sonar estúpido, pero como me pasó a mí, lo compartiré.

Cuando crea el origen de datos en Weblogic (al menos 10.3.4), no olvide pasar por todo el proceso de configuración (el botón Finish está habilitado antes del final).

En esta última página, podrá activate el origen de datos para un servidor, no solo crearlo.

Para verificar si su base de datos está activa, puede buscar el árbol JNDI del servidor.


También me enfrenté al mismo problema en mi aplicación al configurar el servidor PROD.

Sol: segmenta los orígenes de datos en la consola de lógica web (nodo o clúster). Esto funciona para mi.

Navegación: en la consola: vaya a JDBC> Resumen de orígenes de datos JDBC> DataSource1> seleccione los servidores o clústeres en los que desea implementar esta fuente de datos JDBC.


java es el espacio de nombres raíz JNDI para los recursos.

Entonces quizás necesites

dataSource = (javax.sql.DataSource) context.lookup("java:jdbc/testDatasource");