Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Importare (usare) una servlet in un'altra servlet

    salve,
    ho 2 servlet una DataAccess e un'altra ServletSession.
    ServletSession dovrebbe usare DataAccess per ricevere una connessione al database.
    Pero se metto entrambi i .class nella stessa cartella e nel metodo init di ServletSession chiamo:

    connection=DataAccess.newConnection();
    quando provo a compilare ServletSession mi dice

    cannot find symbol
    symbol : variable DataAccess
    location: class servlet.SessionServlet
    connection=DataAccess.newDataAccess();
    ^
    L'apice si trova sotto DataAccess...
    Come mai?
    Tutte le servlet sono nel web.xml e tutte nella stessa cartella....
    quale potrebbe essere il problema..??
    grazie per l'attenzione
    duffimc

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Importare (usare) una servlet in un'altra servlet

    Originariamente inviato da duffimc
    tutte nella stessa cartella....
    Dal momento che hai usato i "package", essi si devono "riflettere" nella struttura delle cartelle per i file .class.
    Quindi se il package si chiama servlet e hai .class "sfusi" (non in jar), dovrai avere:

    /WEB-INF/classes/servlet/DataAccess.class
    /WEB-INF/classes/servlet/ServletSession.class
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Re: Re: Importare (usare) una servlet in un'altra servlet

    Originariamente inviato da andbin
    Dal momento che hai usato i "package", essi si devono "riflettere" nella struttura delle cartelle per i file .class.
    Quindi se il package si chiama servlet e hai .class "sfusi" (non in jar), dovrai avere:

    /WEB-INF/classes/servlet/DataAccess.class
    /WEB-INF/classes/servlet/ServletSession.class
    esatto, ed è cosi..i due .class sono entrambi nella cartella /WEB-INF/classes/servlet/
    ma se compilo alla riga che ho postato prima mi dice che non trova DataAccess :master:

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: Importare (usare) una servlet in un'altra servlet

    Originariamente inviato da duffimc
    ma se compilo
    Dipende da come compili. Stai usando un IDE? Stai usando direttamente i tools del JDK? E in questo caso come hai strutturato il progetto? (se fai tutto "a mano" hai più libertà, chiaramente)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5

    Re: Re: Re: Re: Importare (usare) una servlet in un'altra servlet

    Originariamente inviato da andbin
    Dipende da come compili. Stai usando un IDE? Stai usando direttamente i tools del JDK? E in questo caso come hai strutturato il progetto? (se fai tutto "a mano" hai più libertà, chiaramente)
    No non sto usando nessun IDE tutto a mano.
    sono sotto linux e la compilazione la eseguo cosi:

    javac -classpath /usr/local/tomcat/lib/servlet-api.jar SessionServlet.java -d ../
    il -d è per posizionare il .class nella cartella servlet ti spiego la mia struttura:

    Codice PHP:
    webapps
               prova_app             
                     WEB
    -INF
                       classes
                           servlet
                           src 
    in src ci sono i .java e tramite l'istruzione di prima la compilazione mi mette i .class in servlet
    i .java hanno come package: package servlet

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Mettere un src (i sorgenti) sotto classes non è certo una bella cosa pulita....

    Suggerimento:

    codice:
    webapps
        prova_app
            src
                servlet
                    DataAccess.java
                    ServletSession.java
            WEB-INF
                classes
                    servlet
                        (DataAccess.class)
                        (ServletSession.class)
    posizionati in 'src' quindi:

    javac -classpath /usr/local/tomcat/lib/servlet-api.jar:../WEB-INF/classes:. -d ../WEB-INF/classes servlet/SessionServlet.java

    In classpath ci deve essere: il jar delle api servlet, la classes (perché lì può trovare già classi compilate) e la directory corrente, la src in cui sei (perché se non trova già un .class da usare, può trovare il sorgente!)

    Purtroppo è lungo e noioso .... lo so.

    Per questo tipo di progettini già un pochino strutturati, ti suggerisco caldamente di usare Ant.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Originariamente inviato da andbin
    Mettere un src (i sorgenti) sotto classes non è certo una bella cosa pulita....
    hai perfettamente ragione era li per semplicità e per effettuare i primi test...


    Originariamente inviato da andbin
    posizionati in 'src' quindi:
    javac -classpath /usr/local/tomcat/lib/servlet-api.jar:../WEB-INF/classes:. -d ../WEB-INF/classes servlet/SessionServlet.java

    In classpath ci deve essere: il jar delle api servlet, la classes (perché lì può trovare già classi compilate) e la directory corrente, la src in cui sei (perché se non trova già un .class da usare, può trovare il sorgente!)

    Purtroppo è lungo e noioso .... lo so.

    Per questo tipo di progettini già un pochino strutturati, ti suggerisco caldamente di usare Ant.
    Perfetto funziona.......ti ringranzio per l'aiuto sei stato gentilissimo...
    Mi informero su ANT...
    Spero di ricambiare un giorno....

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.