Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Hybrid View

  1. #1

    Problema con oracle ojdbc6

    ciao!

    ho un programma che esegue delle connessioni ad un db oracle con ojdbc6.
    il mio pom.xml:
    codice:
    <dependency>
                <groupId>oracle</groupId>
                <artifactId>ojdbc6</artifactId>
                <version>11.2.0.4.0</version>
            </dependency>
    quando provo ad eseguire una qualsiasi query, ottengo questo errore:
    codice:
    oracle.jdbc.driver.OracleDriver
    relativo al ClassNotFoundException

    questa la classe che uso:
    codice:
    public class DBManager {
    
        private static DBManager instance = null;
        private static Connection conn = null;
    
        private DBManager() {
        }
    
        public static DBManager getInstance() {
            return (instance == null) ? (instance = new DBManager()) : instance;
        }
    
        public Connection getConnection() throws ClassNotFoundException, SQLException {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            conn = DriverManager.getConnection("jdbc:oracle:thin:@IP:1521:DB", "USER", "PWD");
            return conn;
        }
    }
    qualche idea???

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da fermat Visualizza il messaggio
    il mio pom.xml:
    codice:
    <dependency>
                <groupId>oracle</groupId>
                <artifactId>ojdbc6</artifactId>
                <version>11.2.0.4.0</version>
            </dependency>
    Giusto per capire ... questo artifact da dove lo prende? Perché sul Maven Central non c'è ....
    Hai specificato un repo apposito? O hai il jar "sfuso" e l'hai "installato" come artifact Maven nel tuo repo locale (sulla tua macchina)?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Giusto per capire ... questo artifact da dove lo prende? Perché sul Maven Central non c'è ....
    Hai specificato un repo apposito? O hai il jar "sfuso" e l'hai "installato" come artifact Maven nel tuo repo locale (sulla tua macchina)?
    si giusto scusate:
    codice:
    <repositories>
            <!--<repository>
                <id>icm</id>
                <url>http://maven.icm.edu.pl/artifactory/repo/</url>
            </repository>-->
            <repository>
                <id>codelds</id>
                <url>https://code.lds.org/nexus/content/groups/main-repo</url>
            </repository>
        </repositories>

  4. #4
    apparentemente ho risolto copiando il jar scaricato dal sito ufficiale dentro alla cartella lib.
    ho fatto varie prove e sembra funzionare.


  5. #5
    unica cosa che facendo così ho dovuto poi modificare il MANIFEST per aggiungere il driver.
    non è il massimo come procedura, però non è un programma che modifico spesso.

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da fermat Visualizza il messaggio
    apparentemente ho risolto copiando il jar scaricato dal sito ufficiale dentro alla cartella lib.
    Quote Originariamente inviata da fermat Visualizza il messaggio
    unica cosa che facendo così ho dovuto poi modificare il MANIFEST per aggiungere il driver.
    Scusa ma la tua è una webapp? Se è una webapp JavaEE sì, i jar VANNO nella WEB-INF/lib
    Se è una app desktop/console si può fare in diversi modi con più scelta.

    Se è una webapp, il MANIFEST generalmente NON si tocca mai (salvo casi particolari).
    Se è una app desktop/console E vuoi avviare con java -jar xxx.jar allora sì, ci vuole il Class-Path nel Manifest ma in genere è preferibile farlo gestire ad un tool di build (es. Ant/Maven).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  7. #7
    è una applicazione REST, che avvio da un classico jar.

    il mio unico problema è questo driver, che non funziona con nessun repo per maven.
    in alcuni casi ottengo quell'errore, in altri il jar scaricato risulta corrotto.
    quindi l'ho scaricato dal sito ufficiale e piazzato nella cartella lib, ed ha funzionato.

    però ho dovuto modificare il manfest a mano, perchè l'ho levato dal pom.xml.

  8. #8
    ciao!

    riapro un attimo la discussione, per capire se sono io che sbaglio qualcosa.
    al momento ho provato queste dipendenze (una alla volta ovviamente):
    - https://mvnrepository.com/artifact/c...bc6/11.1.0.6.0
    - https://mvnrepository.com/artifact/c...jdbc8/12.2.0.1
    - https://mvnrepository.com/artifact/c...c14/10.2.0.1.0
    - https://mvnrepository.com/artifact/c...dbc14/12.2.0.1

    in tutti i casi riscontro questo errore:
    codice:
    Cannot resolve com.oracle.jdbc:VERSIONE_IMPOSTATA
    è un problema mio o c'è qualcosa che non va con questo driver??
    perchè per ora me la sono cavata nel modo sopra, ma è una rottura.
    se devo fare così ogni volta, preferisco riscrivere il tutto in altro modo!

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da fermat Visualizza il messaggio
    al momento ho provato queste dipendenze (una alla volta ovviamente):
    - https://mvnrepository.com/artifact/c...bc6/11.1.0.6.0
    - https://mvnrepository.com/artifact/c...jdbc8/12.2.0.1
    - https://mvnrepository.com/artifact/c...c14/10.2.0.1.0
    - https://mvnrepository.com/artifact/c...dbc14/12.2.0.1

    in tutti i casi riscontro questo errore:
    codice:
    Cannot resolve com.oracle.jdbc:VERSIONE_IMPOSTATA
    Chiariamo innanzitutto una cosa: mvnrepository.com NON è un repo Maven. È semplicemente un search engine che "aggrega" vari altri repository Maven su cui puoi cercare un certo artifact.

    Se guardi le pagine agli url indicati, vedi che dice:

    per il primo:
    Note: this artifact it located at Boundless repository (https://repo.boundlessgeo.com/main/)

    per il secondo:
    Note: this artifact it located at XWiki Externals repository (https://maven.xwiki.org/externals/)

    ecc...

    Ovvero, questi artifact si trovano in repository diversi dal classico e predefinito Maven Central. Quindi se vuoi usare questi artifact, DEVI mettere nel tuo pom.xml un <repository> sotto <repositories> che descrive quel repository.

    Altrimenti, ovvio, non riesce a risolvere quel artifact.

    Comunque prima di tirare dentro artifact da repository "dubbi", verifica bene chi sono e cosa fanno e mettono a disposizione ..
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  10. #10
    ok, hai perfettamente ragione.

    allora prendiamo questo come esempio: https://mvnrepository.com/artifact/c...dbc14/12.2.0.1

    ho impostato il pom così:
    codice:
    <dependencies>
        <dependency>
            <groupId>com.oracle.jdbc</groupId>
            <artifactId>ojdbc14</artifactId>
            <version>12.2.0.1</version>
        </dependency>
    </dependencies>
    
    <repositories>
        <repository>
            <id>icm</id>
            <url>http://maven.icm.edu.pl/artifactory/repo/</url>
        </repository>
    </repositories>
    ottengo cmq errore. ho sbagliato ancora??
    Ultima modifica di fermat; 11-06-2020 a 11:29

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.