martes, marzo 25, 2014

Conectar a WebLogic (DataSoruce) con cliente Java Remoto



Lo que pasa es de que". Esta ocasion traigo un ejemplo que en lo particular no me habia encontrado,  pues resulta  que un compañero tenia  configurado un datasource en su Weblogic y este me dijo que lo podia utilizar sin que yo tubiera que instalar mi aplicacion java en su equipo, es decir que yo utilizara el DataSource de forma remota, por lo que  al principio imagine que no se podia por que yo solo habia hecho uso del DataSource siempre y cuando mi aplicacion estuviera en el Weblogic pero buscando en la red me encontre con estas lecturas que me hacia creer que era real lo que me pedia mi compañero 



http://docs.oracle.com/cd/E13222_01/wls/docs81/jndi/jndi.html http://way2java.com/spring/using-connection-pool-in-spring/

http://docs.oracle.com/cd/E11035_01/wls100/javadocs/weblogic/jndi/WLInitialContextFactory.html

http://stackoverflow.com/questions/756029/where-is-class-weblogic-jndi-wlinitialcontextfactory

Este es el codigo de ejemplo:
             Context ctx = null;
            Hashtable ht = new Hashtable();
            ht.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
            ht.put(Context.PROVIDER_URL,"t3://182.168.1.12:7001");
            Connection conn = null;
            Statement stmt = null;
            ResultSet rs = null;
         
             try {
              ctx = new InitialContext(ht);
              System.out.println("Creando el lookup ");
              javax.sql.DataSource ds = (javax.sql.DataSource) ctx.lookup ("MyDataSource");
                                                                             
              System.out.println("Conectando... ");
              conn = ds.getConnection();
              System.out.println("Creamos Statement");
              stmt = conn.createStatement();
              System.out.println("Ejecumtamos..");
              rs = stmt.executeQuery("select PROCESO, CADENA from CADENA");
              while(rs.next()){
                System.out.println( rs.getString(1) + " " ) ;
               
              }
              System.out.println("Final..");
            

           //Close JDBC objects as soon as possible
              stmt.close();
              stmt=null;
               conn.close();
              conn=null;
            }
            catch (Exception e) {
              // a failure occurred
              System.out.println(e.getMessage());
            }
          finally {  
            try {
              ctx.close();
            } catch (Exception e) {
                  System.out.println(e.getMessage()); }
            try {
              if (rs != null) rs.close();
            } catch (Exception e) {
                  System.out.println(e.getMessage()); }
            try {
              if (stmt != null) stmt.close();
            } catch (Exception e) {
                  System.out.println(e.getMessage());; }
            try {
              if (conn != null) conn.close();
            } catch (Exception e) {
                  System.out.println(e.getMessage());; }
          }

  
El primero error que me encontre Cannot instantiate class: weblogic.jndi.WLInitialContextFactory , con este error buscando en la red me daban refrencias que me indicaban que tenia que importar una libreria weblogic.jar



 por lo que en la red la busque y la importe y o sorpresa me salian Excepciones como java.lang.NoClassDefFoundError: weblogic/kernel/KernelStatus esto me indicaba que no tenia el .jar que necesitaba, nuevamente buscando en la red me decia que tenia que intalar un jar llamado wlfullclient, me dia la tarea de buscar por la red, no lo encontraba hasta que por fin logre encontralo en el sitio http://www.midvision.co.uk/downloads/repository_jars/repository/com/oracle/weblogic/wlfullclient/10.3.3.0/ descargue e importe y nuevamente hie el test


o sorpresa otra Excepcion java.lang.NoClassDefFoundError: oracle/sql/BfileDBAccess esto me decia que era necesario importar el ojdbc para que se pudiera
        realizar la conexion, entonces solo importe el ojdbc5.jar y listo nuevamente el test y listo





 Creando el lookup         Conectando...
        Creamos Statement
        Ejecumtamos..
        LOG_01001
        LOG_01001
        LOG_01501
        LOG_01501
        LOG_02010
        LOG_02010
        LOG_02014
        LOG_02014
        PROCESO1
        LOG_01001
        LOG_01501
        LOG_02010
        LOG_02014
        PROCESO1
        LOG_01001
        LOG_01501
        LOG_02010
        LOG_02014
        PROESO1
        Final..

Nota: esto tambien lo encontre como conexion T3 desde java,  es el protocolo de comunicacion Weblogic RMI

Coloco el Proyecto por cualquier cosa con las librerias que se usan

DESCARGA

No hay comentarios.:

Publicar un comentario