FAQ Java EEConsultez toutes les FAQ
Nombre d'auteurs : 27, nombre de questions : 85, dernière mise à jour : 3 mai 2015 Ajouter une question
Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums de http://www.developpez.com et de l'expérience personnelle des auteurs.
Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant rédacteur, lisez ceci.
- Comment ajouter le JAR de Jave EE dans Tomcat ?
- Pourquoi ma page ne s'affiche-t-elle pas complètement ?
- Comment gérer une connexion JDBC ?
- Comment partager le contexte entre deux webapps ?
- Comment charger des servlets de l'application au démarrage de Tomcat ?
- Comment lire un message d'erreur de Tomcat ?
- Comment créer un compte utilisateur qui a les droits pour manager Tomcat ?
- Comment utiliser une bibliothèque DLL implémentée par JNI sur un serveur TOMCAT ?
Si on ajoute j2ee.jar dans le répertoire WEB-INF/lib d'une application sur Tomcat, il va y avoir un problème de compatibilité entre les Jar de Tomcat (servlet.jar) et celui de Java EE.
C'est pourquoi, il faut rajouter ce Jar dans le fichier lib du JDK utilisé par Tomcat et le retirer du dossier WEB-INF/lib.
Dans Tomcat, le moteur de rendu (Jasper) effectue le rendu de la page jusqu'à ce qu'il trouve une erreur. S'il trouve une erreur, il stoppe le rendu de la page et ajoute une erreur dans les fichiers de log. Il est donc tout à fait possible que votre page soit coupée au beau milieu.
Il faut que le jar du JDBC soit dans les lib de Tomcat
Puis il y a trois étapes :
dans le server.xml
Code xml : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <Context path="/Le_Contexte" reloadable="true" debug="0" docBase="Le_DocBase" workDir="Le_workDir"> <Ressource name="jdbc/Le_Contexte" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/Le_Contexte"> <parameter> <name>user</name> <value>Le_Login_SGBD</value> </parameter> <parameter> <name>password</name> <value>Le_Password_SGBD</value> </parameter> <parameter> <name>driverClassName</name> <value>Le_Driver_SGBD</value> </parameter> <parameter> <name>url</name> <value>L_URL_Connection</value> </parameter> </ResourceParams> </Context> |
Code xml : | Sélectionner tout |
1 2 3 4 5 6 | <resource-ref> <description>reference a la ressource BDD pour le pool</description> <res-ref-name>jdbc/Le_Contexte</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> |
Code java : | Sélectionner tout |
1 2 3 4 5 6 7 | try { Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); ds = (DataSource) envCtx.lookup("jdbc/Le_Contexte"); } catch (Exception e) { //Gestion de l'erreur } |
Quand on a besoin de l'accès a la base de données, on fait:
Code java : | Sélectionner tout |
Connection conn=ds.getConnection();
On peut aussi préciser dans le serveur xml, le nombre de connection que l'on veut dans le pool (nb max, nb min, nombre en attente)
Attention! Bien que cette FAQ mentionne cette possibilité, mettre la balise <context/> dans server.xml est fortement déconseillé depuis tomcat 5.0! Préférez l'utilisation d'un fichier context autonome.
Pour en savoir plus sur la gestion d'un pool de connexion sous Tomcat
Voici un exemple des lignes à rajouter dans le fichier conf/server.xml :
Code xml : | Sélectionner tout |
1 2 3 4 5 6 | <Context path="/webapp1" docBase="webapps/webapp1" crossContext="true" debug="0" reloadable="true"> </Context> <Context path="/webapp2" docBase="webapps/webapp2" crossContext="true" debug="0" reloadable="true"> </Context> |
Code java : | Sélectionner tout |
crossContext="true"
Code java : | Sélectionner tout |
1 2 | ServletContext myContext = this.getServletContext(); ServletContext otherContext = myContext.getContext("/webapp1"); |
Dans le fichier web.xml du répertoire WEB-INF lors de la déclaration du servlet, rajouter la ligne:
Code xml : | Sélectionner tout |
<load-on-startup>1</load-on-startup>
Code xml : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | <servlet> <servlet-name>Controller</servlet-name> <display-name>Controller</display-name> <servlet-class>com.company.Controller</servlet-class> <init-param> <param-name>index</param-name> <param-value>/index.jsp</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> |
Ces messages sont composés de deux parties. Pour débugger il faut regarder la deuxieme partie qui commence après :
Code text : | Sélectionner tout |
root cause
Code text : | Sélectionner tout |
cause mere
Afin de pouvoir créer un compte pour pouvoir accèder à l'interface de gestion du conteneur Web (afin de pouvoir retirer les applications déployées par exemple), il vous suffit d'accèder directement à ./conf/tomcat-users.xml.
De base le fichier se présente ainsi :
Code xml : | Sélectionner tout |
1 2 3 | <?xml version='1.0' encoding='utf-8'?> <tomcat-users> </tomcat-users> |
Code xml : | Sélectionner tout |
<role rolename="manager"/>
Code xml : | Sélectionner tout |
<user username="adminTomcat" password="admin" roles="manager"/>
Code xml : | Sélectionner tout |
1 2 3 4 5 | <?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="manager"/> <user username="adminTomcat" password="admin" roles="manager"/> </tomcat-users> |
Il suffit tout simplement de rajouter l'option suivante :
Code : | Sélectionner tout |
-Djava.library.path=<chemin vers DLL>
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.