Foros del Web » Programación para mayores de 30 ;) » Java »

Problemas usando InitialDirContext + Persistence.createEntityManagerFactory

Estas en el tema de Problemas usando InitialDirContext + Persistence.createEntityManagerFactory en el foro de Java en Foros del Web. Saludos a todos. Bueno, despues de mucho probar, y no dar con el resultado, y de buscar en varias partes, aun no logro dar con ...
  #1 (permalink)  
Antiguo 18/08/2010, 07:27
 
Fecha de Ingreso: agosto-2010
Mensajes: 2
Antigüedad: 13 años, 8 meses
Puntos: 0
Problemas usando InitialDirContext + Persistence.createEntityManagerFactory

Saludos a todos.

Bueno, despues de mucho probar, y no dar con el resultado, y de buscar en varias partes, aun no logro dar con una solucion satisfactoria. El problema trata de lo siguiente.

Tengo la seguiente autenticacion ldap y funciona perfectamente.


Código:
env.put(Context.SECURITY_AUTHENTICATION, "simple");
            env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
            env.put(Context.PROVIDER_URL, "ldap://"+controller.getDBParameter("CG_LDAP_OID_IP")+":"+controller.getDBParameter("CG_LDAP_OID_PORT")+"/");
            env.put(Context.SECURITY_PRINCIPAL, basedn);
            env.put(Context.SECURITY_CREDENTIALS, password);

            try {
                InitialDirContext ctx = null;
                ctx = new InitialDirContext(env);
                log.info("Autenticacion Ldap exitosa");
                autldap = true;
                ctx.close();
                
            }
            catch (Exception e)
            {
                log.info("No se pudo completar la autenticacion ldap");
                log.info("Mensaje: "+e.getMessage());
                autldap = false;

                e.printStackTrace();
            }

el problema es que una vez realizo esa autenticacion, e intento usar la siguiente funcion:

Persistence.createEntityManagerFactory("persis");

me arroja el siguiente error.

Código:
Caused by javax.naming.NamingException with message: "[LDAP: error code 1 - 00000000: LdapErr: DSID-0C090627, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, vece�]"


Caused by javax.persistence.PersistenceException with message: "[PersistenceUnit: persis] Unable to build EntityManagerFactory"

bueno probando, si quito la autenticacion ldap inicial, al parecer el contexto queda limpio, y me funciona sin problema la segunda función.

a la final supongo que usando Persistence.createEntityManagerFactory tambien accedo al contexto, y por ello tira el error.

posterior a la autenticacion ldap tambien me deja de funcionar cosas como:

Código:
InitialContext initCtx = new InitialContext();
dataSource = (DataSource) initCtx.lookup(jndiNatDataSource);

me tira el siguiente error:

Código:
Caused by javax.naming.NamingException with message: "[LDAP: error code 1 - 00000000: LdapErr: DSID-0C090627, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, vece�]"
El problema básicamente está en que después de colocar la autenticacion ldap en mi desarrollo, estas funciones que ya estaban funcionando perfectamente, presentan problemas.Lo que considero es que de alguna forma el contexto queda directamente ligado a las restricciones de seguridad que coloque inicialmente, y siempre que intento acceder al contexto me envia a intentar autenticarme, lo que deseo hacer es que después de autenticarme con el ldap remueva estas restricciones.


agradezco cualquier ayuda, sugerencia al respecto. De antemano muchas gracias.
  #2 (permalink)  
Antiguo 25/08/2010, 08:33
 
Fecha de Ingreso: agosto-2010
Mensajes: 2
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Problemas usando InitialDirContext + Persistence.createEntityManagerFactor

Listo solucionado, cierren esto, igual gracias.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:08.