pseudo-archive Java 
Réalisation

Resin et compilateur java
Bonjour à tous,

je viens de réinstaller resin sous linux et quand je veux essayer les
exemples de JSPs fournis avec je reçois le message suivant:

500 ServletException
Resin can't load sun.tools.javac.Main.  Usually this means that the JDK
tools.jar is missing from the classpath, possibly because of using a JRE

instead of the JDK.  You can either add tools.jar to the classpath or
change the compiler to an external one with <java compiler='javac'/> or
jikes.

java.lang.ClassNotFoundException: sun.tools.javac.Main

Dans le fichier resin.conf la section <java compiler /> avait pour
valeur "internal".
Je l'ai changé pour mettre "javac" à la place, et ça à l'air de
fonctionner.

Je voudrais savoir si Resin à un compilateur interne ? (ce qui
expliquerais ça rapidité ?)
Si c'est le cas pourquoi lors de mes essais il ne l'a pas trouvé ?
Quelqu'un à déjà eu ce probleme ?

De plus, j'ai reçu l'erreur 500 que lors de l'essai de certaines JSPs.
C'est à dire que lors de l'essai des servlets exemples ou du 1er JSP
exemple (Hello world) tout a fonctionné correctement. Ca voudrais dire que
les exemples pour lesquels je n'ai pas reçu de message d'erreur étaient
déjà compilé ? Etrange...

Merci de vos eclaircissements avisés !

--
Jean Michel Flambard





>De plus, j'ai reçu l'erreur 500 que lors de l'essai de certaines JSPs.
>C'est à dire que lors de l'essai des servlets exemples ou du 1er JSP
>exemple (Hello world) tout a fonctionné correctement. Ca voudrais dire
>que les exemples pour lesquels je n'ai pas reçu de message d'erreur
>étaient déjà compilé ? Etrange...
pour les JSP ca m'etonne mais pour une servlet il n'ya aucun besoin de
compilation dynamique de code puisque tu deploies un .war ou un.ear et
c'est fini( il contient lui meme les .class). un JSP est compile a la
volee (puis mis en cache)..

Jerome



----- Original Message -----
From: "Jean Michel Flambard" <flambard.jean-michel@wanadoo.fr>
To: "Liste Java" <java@u-strasbg.fr>
Sent: Wednesday, March 27, 2002 6:49 PM
Subject: Resin et compilateur java


> Bonjour à tous,
>
> je viens de réinstaller resin sous linux et quand je veux essayer les
> exemples de JSPs fournis avec je reçois le message suivant:
>
> 500 ServletException
> Resin can't load sun.tools.javac.Main.  Usually this means that the JDK
> tools.jar is missing from the classpath, possibly because of using a JRE
>
> instead of the JDK.  You can either add tools.jar to the classpath or
> change the compiler to an external one with <java compiler='javac'/> or
> jikes.
>
> java.lang.ClassNotFoundException: sun.tools.javac.Main
>
> Dans le fichier resin.conf la section <java compiler /> avait pour
> valeur "internal".
> Je l'ai changé pour mettre "javac" à la place, et ça à l'air de
> fonctionner.
>
> Je voudrais savoir si Resin à un compilateur interne ? (ce qui
> expliquerais ça rapidité ?)
> Si c'est le cas pourquoi lors de mes essais il ne l'a pas trouvé ?
> Quelqu'un à déjà eu ce probleme ?
>
> De plus, j'ai reçu l'erreur 500 que lors de l'essai de certaines JSPs.
> C'est à dire que lors de l'essai des servlets exemples ou du 1er JSP
> exemple (Hello world) tout a fonctionné correctement. Ca voudrais dire
> que les exemples pour lesquels je n'ai pas reçu de message d'erreur
> étaient déjà compilé ? Etrange...
>
> Merci de vos eclaircissements avisés !

Non resin n'a pas de compilateur interne, mais il utilise habituellement
celui du jdk qui est dans tools.jar. Si tools.jar n'est pas dans le
classpath, resin peut utiliser un compilateur "externe". Ici externe veut
simplement dire qu'il va faire un Runtime.exec pour lancer la compilation
au lieu d'utiliser directement une librairie contenant un compilateur. De
toute façon, javac n'est qu'une coquille qui lance le compilateur qui est
dans tools.jar =). Sinon tu peut aussi utiliser jikes qui est le
compilateur d'ibm, il est normallement dans resin/bin/jikes ( je crois ).

Coté performance, la compilation compte peu, puisqu'une page jsp ou une
servlet n'est compilée qu'au premier appel. Si je devais donner une
explication ( car j'ai un peu trifouillé le code ) concernant les perfs,
je dirai que premièrement c'est parceque le gars est bon ( Scott Ferguson
) et deuxièmement, il a refait beaucoup de choses ( notament les flux ) au
lieu d'utiliser ceux du jdk ( voir com.caucho.vfs ).

> --
> Jean Michel Flambard


Nicolas Repiquet a écrit :

>
>
> Non resin n'a pas de compilateur interne, mais il utilise habituellement
> celui du jdk qui est dans tools.jar. Si tools.jar n'est pas dans le
> classpath, resin peut utiliser un compilateur "externe". Ici externe
> veut simplement dire qu'il va faire un Runtime.exec pour lancer la
> compilation au lieu d'utiliser directement une librairie contenant un
> compilateur. De toute façon, javac n'est qu'une coquille qui lance le
> compilateur qui est dans tools.jar =). Sinon tu peut aussi utiliser
> jikes qui est le compilateur d'ibm, il est normallement dans
> resin/bin/jikes ( je crois ).
>
> Coté performance, la compilation compte peu, puisqu'une page jsp ou une
> servlet n'est compilée qu'au premier appel. Si je devais donner une
> explication ( car j'ai un peu trifouillé le code ) concernant les perfs,
> je dirai que premièrement c'est parceque le gars est bon ( Scott
> Ferguson ) et deuxièmement, il a refait beaucoup de choses ( notament
> les flux ) au lieu d'utiliser ceux du jdk ( voir com.caucho.vfs ).
>
> > --
> > Jean Michel Flambard

Merci, je comprends mieux maintenant.
Est-ce que jikes est fourni avec Resin ? Si oui, dans quel fichier ?

Merci de votre patience....

--
Jean Michel Flambard
http://perso.wanadoo.fr/jmflambard/