PDA

Visualizza Versione Completa : Tomcat 'sotto' Apache : come?



Kata
23-11-07, 10:22
Ciao a tutti.....avrei bisogno un aiuto.
Qualcuno saprebbe per caso dirmi come ca....volo si installa Tomcat come modulo di Apache col jk_connector?!?!
Non trovo una guida (decente) da nessuna parte......

In pratica, il problema è che vorrei usare Apache anche per far girare le JSP.

Vabbè, alla peggio mi acconteterei anche di far partire tomcat AUTOMATICAMENTE allo startup....senza 'Tomcat controller' o lanciando lo script a mano.....

TheCube
23-11-07, 10:25
Già letto qui (http://developer.apple.com/internet/java/tomcat1.html)?

Kata
23-11-07, 10:58
Si, quell'articolo l'avevo letto....ed è anche molto valido, tanto che ho imparato ad installare Tomcat da lì.
Il problema è che ti spiega sì come installarlo ma come servizio a sè stante, non come modulo di Apache: infatti, se guardi gli esempi anche nella parte II, vedrai che li richiama sempre attraverso la porta 8080, quella di Tomcat.

E nemmeno ti dice come farlo partire (Tomcat) in automatico all'avvio : ti dà i due script da lanciare manualmente da terminale (praticamente come faccio io...).

Grazie mille per l'interessamento, comunque. :smt023

TheCube
23-11-07, 11:07
E nemmeno ti dice come farlo partire (Tomcat) in automatico all'avvio : ti dà i due script da lanciare manualmente da terminale (praticamente come faccio io...).

Grazie mille per l'interessamento, comunque. :smt023
http://www.apple.com/downloads/dashboard/developer/tomcatcollar.html

Se ben capisco fa quello che ti serve

TheCube
23-11-07, 11:10
Per l'integrazione Apache - Tomcat prova a leggere questo:
http://www.macdevcenter.com/pub/a/mac/2002/08/20/tomcat_integration.html

Kata
23-11-07, 11:43
http://www.apple.com/downloads/dashboard/developer/tomcatcollar.html

Se ben capisco fa quello che ti serve

Azzz.....o : questo potrebbe essere MOLTO utile!
Uso il condizionale perchè potrò provare solo pomeriggio a casa......però sembrerebbe andare bene; gli altri strumenti che avevo trovato lo avviavano senza usare la linea di comando, ma NON automaticamente.

Quantomeno mi eviterebbe di 'startare' Tomcat manualmente....fa niente se poi vado sulla 8080.

Grazie mille :smt038, verifico poi ti faccio sapere.

Kata
23-11-07, 11:57
Per l'integrazione Apache - Tomcat prova a leggere questo:
http://www.macdevcenter.com/pub/a/mac/2002/08/20/tomcat_integration.html


:smt023 si...questo fa esattamente quello che mi serve......

Intanto appena riesco provo col widget, poi caso mai provo con questo.....

Grazie ancora!

Kata
24-11-07, 12:17
Eccomi.....
Dunque, dopo un pomeriggio di tentativi, ho dovuto 'abbandonare' il widget segnalato (purtroppo, perchè avrebbe fatto esattamente quello che mi serviva...) per uno 'strano' problema : per comodità mia ho scompattato la cartella con tomcat in una posizione differente da quella nella quale lo cercava il widget.
Poco male, tanto dalle preferenze dello stesso (il solito pulsantino "i" ) è possibile impostare il percorso.

PECCATO che, premo i , come al solito il widget 'ruota', imposto le preferenze che mi occorrono e premo 'ok'. Solo che, al CONTRARIO del solito, il widget non ne vuole sapere di tornare in 'posizione operativa', se non rimuovendolo dalla dashboard e reinserendolo.
Naturalmente, perde le impostazioni (tra le quali 'avvia allo startup') e da errore perchè non trova, giustamente, la directory di Tomcat.
Per curiosità, ho provato sia a installare Tomcat nella directory in cui lo cerca il widget, sia a installare il widget stesso sul PowerBook (dove, a differenza dell'IMac dal quale scrivo, ho Tiger e non Leopard).
Niente da fare nemmeno così.

Alla fine ho risolto con un AppleScript (di cui fino a ieri conoscevo a malapena l'esistenza...ma per fortuna lo script era semplice) salvato come applicazione e lanciato al login dell'utente.
Riguardo lo stop....oltre all'opzione manuale, immagino ci pensi il sistema allo shutdown, come per gli altri servizi....giusto...?

lefty
24-11-07, 13:12
stavo leggendo il primo articolo segnalato da Cube ma mi sono bloccato a questo punto

Now you can create a file (using your favorite text editor, must be saved with unix line endings) called ~/bin/start_tomcat with the following contents:


che texteditor devo usare e soprattutto che significa che deve essere salvato con le unix line endings??

Kata
24-11-07, 13:28
...che texteditor devo usare e soprattutto che significa che deve essere salvato con le unix line endings??

Ciao;
significa che devi prestare attenzione agli 'attributi di formattazione' del testo....
Se per esempio tu editassi il file con Word, questi assieme al testo ti salverebbe anche una miriade di caratteri a te invisibili ma che darebbero 'fastidio' (se mi passi il termine....) in fase di esecuzione (perchè il file poi deve essere reso eseguibile).
Per non sbagliare, usa VI da terminale....vai nella cartella in cui deve essere salvato il file (indicata nell'articolo), apri VI (comando VI), inserisci il testo e quando hai finiti premi "esc" , poi :wq! .
Poi fai un ls della directory, e dovresti trovare il file appena editato......

lefty
24-11-07, 13:43
mi manca dove inserire il nome del file da salvare

edit: risolto

Kata
24-11-07, 13:56
:smt023

lefty
24-11-07, 14:02
però quando lancio il comando start_tomcat mi dice:

-bash: start_tomcat: command not found


EDIT:risolto anche questo

lefty
24-11-07, 14:12
ho risolto per modo di dire...lancio lo script e mi dice questo



Using CATALINA_BASE: /usr/local/apache-tomcat-4.1.36
Using CATALINA_HOME: /usr/local/apache-tomcat-4.1.36
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-4.1.36/temp
Using CATALINA_OUT: /usr/local/apache-tomcat-4.1.36/logs/catalina.out
Using JAVA_HOME: /usr
Catalina.stop: java.net.ConnectException: Connection refused
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl .java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSoc ketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.j ava:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.j ava:430)
at java.net.Socket.connect(Socket.java:516)
at java.net.Socket.connect(Socket.java:466)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:179)
at org.apache.catalina.startup.Catalina.stop(Catalina .java:528)
at org.apache.catalina.startup.Catalina.execute(Catal ina.java:348)
at org.apache.catalina.startup.Catalina.process(Catal ina.java:130)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.main(Bootstr ap.java:151)

Kata
24-11-07, 14:12
Mmmhh....beh, intanto bisognerebbe vedere se il file è nella directory giusta, poi se l'hai reso eseguibile, poi com'è il file che hai editato......io ho fatto così (avendo tomcat in /Library/Tomcat/ ) :

sono entrato come root da terminal nella cartella /usr/bin ed ho editato con VI un file nominandolo tomcat ; copiato in esso il testo che inserito quì in basso e salvato;
poi uscire e dare il comando chmod 755 tomcat .
Ora per lanciare il server basta entrare in Terminal e digitare tomcat start oppure tomcat stop oppure tomcat restart.

File tomcat :

case $1 in

start
sh /Library/Tomcat/bin/startup.sh

;;
stop
sh /Library/Tomcat/bin/shutdown.sh

;;

restart

sh /Library/Tomcat/bin/shutdown.sh

sh /Library/Tomcat/bin/startup.sh

;;

*

echo "Uso: tomcat start|stop|restart"

;;

esac

exit 0

lefty
24-11-07, 14:32
e anche questa è risolta...
avevo sbagliato a nominare i file
avevo omesso ~/bin/ davanti a start_tomcat e stop_tomcat

grazie kata

Kata
24-11-07, 14:40
.....

Using CATALINA_BASE: /usr/local/apache-tomcat-4.1.36
Using CATALINA_HOME: /usr/local/apache-tomcat-4.1.36
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-4.1.36/temp
Using CATALINA_OUT: /usr/local/apache-tomcat-4.1.36/logs/catalina.out
......

Queste potrebbero essere ok...se hai installato tomcat in /usr/local/eccecc

ma


Using JAVA_HOME: /usr


questa..?!?!
Sicuro sia settata giusta?
La mia è settata /Library/Java/Home/ .....
Bisogna vedere dove hai installato Java.

Prova a leggere => cb.linux.it/documenti/download/04-tomcat.pdf.gz <=

Kata
24-11-07, 14:42
e anche questa è risolta...
....

grazie kata

E di che..?!?! :D
Hai fatto tutto da solo..... :smt023

lefty
24-11-07, 17:21
sto seguendo sempre lo stesso tutorial
adesso però ho un problema a compilare le servlet

ho lanciato il comando
export CLASSPATH="/System/Library/
Frameworks/JavaVM.framework/Versions/1.3/Classes/classes.jar:/usr/local/
jakarta-tomcat-4.0.1/common/lib/servlet.jar"

sostituendo al posto di jakarta-tomcat-4.0.1 il nome ke ho io cioè apache-tomcat-4.1.36, poi ho provato le versioni sia 1.3 sia con 1.5 sia con 1.5.0 ma ho sempre lo stesso errore



Hi.java:4: package javax.servlet does not exist
import javax.servlet.*;
^
Hi.java:5: package javax.servlet.http does not exist
import javax.servlet.http.*;
^
Hi.java:13: cannot find symbol
symbol: class HttpServlet
public class Hi extends HttpServlet {
^
Hi.java:15: cannot find symbol
symbol : class HttpServletRequest
location: class Hi
public void doGet(HttpServletRequest request,
^
Hi.java:16: cannot find symbol
symbol : class HttpServletResponse
location: class Hi
HttpServletResponse response)
^
Hi.java:17: cannot find symbol
symbol : class ServletException
location: class Hi
throws IOException, ServletException
^
6 errors

Kata
24-11-07, 19:23
Perchè (presumo) è sbagliata la posizione del file .jar;
anzichè settare la CLASSPATH (a meno che tu non debba compilare 30000 servlets) prova a passarla come parametro a javac, tipo

javac -classpath "/Library/Tomcat/lib/servlet-api.jar" nomeservlet.java

Però ricorda che : io ho tomcat 6, e il .jar nel mio caso si chiama servlet-api (e NON servlet).jar e si trova in lib dentro tomcat....niente common.

lefty
24-11-07, 20:49
facendo come dici tu funziona...grazie mille

ma quando setto la variabile d'ambiente cosa sbaglio?il percorso del file servlet.jar è giusto.
forse è sbagliato il primo file (non il percorso, che è corretto, forse è sbagliato proprio il file a cui si fa riferimento).

Kata
25-11-07, 18:23
facendo come dici tu funziona...grazie mille

ma quando setto la variabile d'ambiente cosa sbaglio?il percorso del file servlet.jar è giusto.
forse è sbagliato il primo file (non il percorso, che è corretto, forse è sbagliato proprio il file a cui si fa riferimento).

Figurati.

Perchè non funziona....boh....non so dirti se il riferimento al file sia giusto o meno, piuttosto penso dipenda dal fatto che probabilmente il suddetto file non è presente nel tuo JDK....quale hai usato? Quello standard di Mac o l'hai installato a parte?
Il jar per le servlet MI PARE che non sia incluso nella 'dotazione standard'.....MI PARE; ma non saprei dirti con precisione, perchè non ho mai compilato una servlet...vado direttamente di JSP.
JSP che poi pensa Tomcat a trasformare in Servlet (è fatto apposta...), mentre il compilatore Java probabilmente no.

lefty
25-11-07, 19:27
il file è presente nel mio jdk perchè altrimenti credo che non funzionerebbe neanche compilando singolarmente ogni servlet...
bisognerebbe capire che significa il comando che ho provato a dare per settare la variabile d'ambiente, in modo da capire se i due file che entrano in gioco sono esatti o meno...
in effetti sarebbe meglio lavorare con le jsp, è solo che ora sono curioso di risolvere sto problema