Hemos migrado nuestra base de datos Oracle 12c de 11g.
Tenemos un legado de la aplicación que se ejecuta en Java 1.5 y el uso de ojdbc14.jar.

Nuestra aplicación no es capaz de crear la conexión a la base de datos de error diciendo :

java.sql.SQLException: ORA-28040: No matching authentication protocol

Me llaman respuesta ORA-28040: No coincidan con el protocolo de autenticación de excepción, e intentado actualizar mi ojdbc14.jar a ojdbc6.jar.

Ahora tengo un mensaje de error diferente diciendo :

  error: OracleCallableStatement is not public in oracle.jdbc.driver; cannot be accessed from outside package
import oracle.jdbc.driver.OracleCallableStatement;
                          ^
error: OracleTypes is not public in oracle.jdbc.driver; cannot be accessed from outside package
            cstmt.registerOutParameter(3,oracle.jdbc.driver.OracleTypes.CURSOR);
                                           ^

Ant build de archivo :

<javac srcdir="${src}" destdir="${classes}" source="1.5" target="1.5">
            <classpath refid="cpath" />
</javac>

No sabe exactamente qué debemos hacer para obtener la solicitud de trabajo.

InformationsquelleAutor Tushar | 2015-06-30

6 Comentarios

  1. 4

    Tuve el mismo error con 2 diferentes aplicaciones recientemente:

    1. Java 7 aplicación en Tomcat 7 uso de la odbc6.jar con Oracle 12 c de la base de datos.
    2. un legado aplicación ASP con Oracle 12 c de la base de datos.

    La segunda solución se menciona en el
    mismo post referido a – funcionó bien para nosotros.

    Solución: Conjunto de SQLNET.ALLOWED_LOGON_VERSION=8 en el oracle/network/admin/sqlnet.ora archivo.

    Hemos trabajado con nuestros Administradores de bases de datos para establecer la opción anterior en el sqlnet.ora en el servidor de base de datos. Esto resuelve nuestro problema. Espero que ayude a alguien.

  2. 3

    A los que me enfrentaba el mismo error.

    Fue resuelto sin la eliminación de ojdbc14.jar.

    paso 1 : set SQLNET.ALLOWED_LOGON_VERSION=8

    Paso 2 : cambiar

    Connection conn = (Connection) DriverManager.getConnection("jdbc:oracle:thin:@server:port:sid", "username", "passwrd");
    

    a

    java.sql.Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@@server:port:sid", "username", "passwrd");
    

    Se trabaja!

  3. 2

    Después de la migración de Oracle 11 a Oracle 12.
    En mi caso directorio lib había tanto OJDBC14.jar & OJDBC8.jar.
    Después de la eliminación de mayores OJDBC14.jar a mí me funcionó.

  4. 0

    Tuve un problema de conexión a la DB después de la migración a ORACLE 12c.
    El error fue:java.sql.SQLException: ORA-28040: No coincidan con el protocolo de autenticación.
    Después de establecer esta parametar SQLNET.ALLOWED_LOGON_VERSION=8 fue resuelto.

    Muchas gracias

  5. 0

    Si va a migrar la aplicación a ojdbc6, una razón probable sería su edad, las clases (compatibles con las antiguas ojdbc version) puede no estar recibiendo la clase OracleTypes. Manera más fácil sería cambiar de importación declaración de importación de oracle.jdbc.el controlador.OracleTypes; para la importación de oracle.jdbc.OracleTypes; de las clases a las que vas a encontrar el error.

  6. 0

    Yo estaba ORA-28040 en Sqldeveloper (ver. 1.5.5) para todas las conexiones. Me puse SQLNET.ALLOWED_LOGON_VERSION=8 pero el error no desaparece. Luego he activado «Usar OCI/Grueso de controlador» en el menú Herramientas->Preferencias>Base de datos->Parámetros Avanzados. Que hizo el truco.

Dejar respuesta

Please enter your comment!
Please enter your name here