Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di citrus
    Registrato dal
    Feb 2002
    Messaggi
    774

    modifica della struttura di package esistenti

    salve a tutti...
    sto cercando di creare un package di classi che siano in grado di istanziare una connessione a diversi tipi di database...
    l'interfaccia sarà costituita da una factory che restituirà l'istanza della classe adibita alla gestione del database richiesto.
    ho pensato di creare il package DBDrivers e di definire al suo interno ogni classe appositamente pensata per la gestione di uno specifico database.
    queste classi però dovranno avere a disposizione i
    Connector-J relativi al proprio database per poter funzionare.

    questi connector sono a loro volta definiti all'interno di un package...
    il problema è che quando scompatto il relativo connettore.jar all'interno della directory DBDrivers questo va a riempirla di directory incasinando la struttura..
    inoltre il conettore per Mysql ed il connettore per Oracle potrebbero avere entrambi al loro interno una directory /com, il che creerebbe problemi di sovrascrittura...

    quindi ho pensato di creare una directory per ciascun connettore in modo da mantere ordinata la struttura del file system.

    il problema è che ora giustamente il meccanismo dei package non funziona più perchè così facendo ho sconvolto la struttura delle directory..

    infatti le classi che compongono il connettore sono definite come patrecipanti al package com.mysql.jdbc mentre ora sono inserite nella directory mysql/com/mysql/jdbc!

    ovviamente è assurdo pensare di modificare tutte le classi...

    quindi come posso fare per creare una struttura ordinata senza incasinare tutto quanto?
    non si può lasciare intatto il file.jar senza scompattarlo?
    (ho visto che altrimenti le classi non vengono trovate)
    spero di essere stato il più chiaro possibile...
    grazie mille
    citrus

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Basta aggiungere il percorso completo a ciascun jar nel classpath della macchina dove gira l'applicazione e il compilatore e la JVM troveranno tutte le classi necessarie anche senza scompattare i vari jar.

    Per percorso completo intendo dire che dovrai avere
    codice:
    CLASSPATH = .;....;percorso/al/connettore/mysql/pacchetto.jar;percorso/al/connettore/oracle/pacchetto.jar;etc etc etc
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it L'avatar di citrus
    Registrato dal
    Feb 2002
    Messaggi
    774
    mi sembra un ottima idea..
    purtroppo però non mi torna utile perchè questa modalità rende l'applicativo non portabile... sopratutto se volessi usare queste classi in una web application jsp dovrai modificare il classpath del server e non credo sia possibile (per lo meno dipenderà dal server)...
    in generale può funzionare ma preferirei evitare di coinvolgere variabili d'ambiente che dipendono esclusivamente dalla macchina...

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    su TomCat c'è una cartella apposita dove andare a schiaffare tutti i jar necessari senza troppi sbattimenti. Credo che poi dovrai andare ad aggiungere qualche dettaglio nel web.xml, per cui il problema non si pone.

    EDIT: per l'esattezza, la cartella è WEB-INF/lilb
    Tomcat aggiunge automaticamente /WEB-INF/lib/*.jar al suo CLASSPATH
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it L'avatar di citrus
    Registrato dal
    Feb 2002
    Messaggi
    774
    e se poi dovessi pubblicare l'applicazione su un server che non dispone della libreria di cui ho bisogno?
    io rimango dell'idea che bisognerebbe creare dei pacchetti "tutto-compreso" onde evitare problemi di portabilità...
    ovviamente se non dovessi trovare una soluzione migliore approfitterò del tuo consiglio... ma mi piacerebbe trovare il modo di impacchettare come si deve il package.. o almeno
    vorrei provarci prima di arrendermi definitivamente

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    chiunque abbia un hosting JSP dovrebbe essere in grado di mettere le manine nella cartella WEB-INF/lib. Se non potesse, onestamente, gli consiglierei di cambiare hosting. Altrimenti, puoi semplicemente ricompilare tutti i pacchetti che hai aggiungendo le nuove informazioni sulla nuova struttura dei package... ma mi sembra veramente una soluzione assurda.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it L'avatar di citrus
    Registrato dal
    Feb 2002
    Messaggi
    774
    se è l'unica soluzione possibile allora no... faccio come dici tu

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 © 2025 vBulletin Solutions, Inc. All rights reserved.