[RISOLTO] jsp bean e CLASSPATH Tomcat su Linux

di il
2 risposte

[RISOLTO] jsp bean e CLASSPATH Tomcat su Linux

Ciao a tutti, ho un problema con i jsp bean, è più un problema concettuale che di programmazione. Uso Eclipse. Ho un directory in cui all'interno ho creato un package (chiamato package1) per un progetto java. In questo package c'è un file java . Ho creato un'altra directory per i progetti web, dove all'interno ci sono due file jsp (uno chiamato primo.jsp e uno chiamato secondo.jsp). Nel file primo.jsp ho messo un form che come "action" ha "action="secondo.jsp" ". Nel file secondo.jsp vorrei chiamare la classe java , che sta nel package1, usando jsp bean. Quindi nel file secondo.jsp ho scritto:
Copio solo la linea che da errore:

<jsp:useBean id="user" class="package1.UserData" scope="session"/>
Il file java , che sta nel package1, ha appunto una "public class UserData", però Eclipse mi da errore, è come se non la trovasse.
Quindi sono arrivato a pensare che il problema sia il CLASSPATH di Tomcat. Sono su Linux ed ho installato Tomcat, scaricando il pacchetto dal sito ufficiale , scompattato e messo in /opt/tomcat. Il tutto funziona infatti entrando in /opt/tomcat/bin , facendo partire lo script ./startup.sh e collegandosi a 127.0.0.1:8080 Tomcat risponde correttamente. Termino Tomcat col comando ./shutdown.sh .

Posto ciò che mi restituisce al comando ./startup.sh:

Using CATALINA_BASE:   /opt/tomcat
Using CATALINA_HOME:   /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Tomcat started.
Funziona anche facendo partire Tomcat da Eclipse.

Ho letto sul Web che devo compilare il file java e metterlo dentro la directory WEB-INF/classes. Nel progetto web che ho creato c'è la directory WEB-INF ma non classes quindi l'ho creata da Eclipse. Ho compilato il file java e infatti il compilatore mi ha restituito un file .class . Ho messo questo file nella directory classes appena creata ma Eclipse mi da sempre errore.

Questo è lo schema dei progetti:
(All'interno di WebProject c'è anche altro, directory che crea in automatico Eclipse).

webProject
   |
    -WbContent
       -META-INF
       -WEB-INF
           -classes
                -file.class
     -primo.jsp
     -secondo.jsp

javaPro
   |
   -package1
       -file.java
Quindi la mia domanda è: Come rendo disponibile la classe java al file jsp?

Grazie delle eventuali risposte, scusate se è un po' confusionario.

2 Risposte

  • Re: [RISOLTO] jsp bean e CLASSPATH Tomcat su Linux

    Escher ha scritto:


    Quindi la mia domanda è: Come rendo disponibile la classe java al file jsp?

    Grazie delle eventuali risposte, scusate se è un po' confusionario.
    Partiamo da alcune premesse. Per sviluppare web application con Eclipse innanzitutto serve il Eclipse "for Java EE Developers" .. non quello base "for Java Developers". Questo perché solo nel primo ci sono una serie di tools per creare e gestire progetti per Java EE. Tecnicamente questi tools si possono anche aggiungere a mano nel Eclipse base ma personalmente non l'ho mai fatto (e forse è più macchinoso).

    Quindi quale Eclipse hai? (deduco dalle tue parole il primo ma precisalo per cortesia, per chiarezza). Precisa anche la versione (sebbene sia meno importante in questo momento).

    Poi a quel punto, avendo il Eclipse for Java EE Developers, la tipologia di progetto basilare e nativo di Eclipse (senza considerare Maven o altro) per realizzare web application è il "Dynamic Web Project", la cui struttura basilare è (vista dal Package Explorer):
    nomeprogetto
        src
        build
        WebContent
            META-INF
            WEB-INF
                lib
    Sotto src (che inizialmente è vuota) ci metti i tuo sorgenti .java e dovresti chiaramente sfruttare i package, specialmente perché si tratta di una web application. Tutto quello che metti sotto WebContent è visibile ai client della applicazione, eccetto WEB-INF (e sotto) che è invisibile dall'esterno. Se hai pagine JSP a cui si arriva dall'esterno con un url, le metti sotto WebContent, eccetto WEB-INF. Se alle JSP ci arrivi solo dall'interno della webapp tramite forward/include, le si mette tipicamente sotto WEB-INF (e preferibilmente in una sotto-cartella).

    Non devi preoccuparti della "classes", né di copiarci dentro qualcosa a mano.
  • Re: [RISOLTO] jsp bean e CLASSPATH Tomcat su Linux

    Per sviluppare web application con Eclipse innanzitutto serve il Eclipse "for Java EE Developers" .. non quello base "for Java Developers". Questo perché solo nel primo ci sono una serie di tools per creare e gestire progetti per Java EE. Tecnicamente questi tools si possono anche aggiungere a mano nel Eclipse base ma personalmente non l'ho mai fatto (e forse è più macchinoso).

    Quindi quale Eclipse hai? (deduco dalle tue parole il primo ma precisalo per cortesia, per chiarezza).
    Scusami hai ragione: Ho Eclipse for java J EE Developers.
    Precisa anche la versione (sebbene sia meno importante in questo momento).
    La versione è Mars.1 Release (4.5.1)


    Grazie mille ho risolto creando un package sotto src e mettendoci i sorgenti .java. Sul web , come vi dicevo, avevo visto che dovevo creare directory e copiarci file dentro ma per ora funziona tutto così.

    Grazie ancora!
Devi accedere o registrarti per scrivere nel forum
2 risposte