Les FAQs Java :
FAQ JAVA FAQ Java EE FAQ Java ME FAQ Java XML FAQ JavaFX FAQ Java GUI FAQ Struts FAQ JSF FAQ JDBC JDO FAQ Hibernate FAQ Spring FAQ Eclipse FAQ NetBeans FAQ JCreator FAQ Maven 2

La FAQ Java EEConsultez toutes les FAQ

Nombre d'auteurs : 27, nombre de questions : 83, dernière mise à jour : 26 avril 2013 

 
OuvrirSommaireConteneurs Web et Serveurs d'ApplicationTomcat

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.

Créé le 22 décembre 2009  par paquerette

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.

Créé le 22 décembre 2009  par ceddup

Il faut que le jar du JDBC soit dans les lib de Tomcat
Puis il y a trois étapes :

dans le server.xml

 
Sélectionnez
<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>

Puis dans le web.xml il faut déclarer la ressource après la section <servlet-mapping> :

 
Sélectionnez
<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>

Enfin dans la méthode init de la servlet, il faut recupèrer la source de données

 
Sélectionnez
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 
}

sachant que ds est une variable d'instance de type DataSource.
Quand on a besoin de l'accès a la base de données, on fait:

 
Sélectionnez
Connection conn=ds.getConnection();

ne pas oublier de libérer avec un close après.
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

Créé le 16 février 2005  par christopheJ

Voici un exemple des lignes à rajouter dans le fichier conf/server.xml :

 
Sélectionnez
<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>

Ne pas oublir d'inclure dans le <Context> l'attribut :

 
Sélectionnez
crossContext="true"

Ensuite au niveau de la servlet on accède à la seconde webapp de la manière suivante :

 
Sélectionnez
ServletContext myContext = this.getServletContext();
ServletContext otherContext = myContext.getContext("/webapp1");

Depuis Tomcat 5.0, bien que ce soit toujours possible, il est déconseillé de mettre la balise <context> dans le fichier server.xml. Dans la mesure du possible, il est bien plus prudent de gérer des fichiers context autonome.

Mis à jour le 22 décembre 2009  par draken

Dans le fichier web.xml du répertoire WEB-INF lors de la déclaration du servlet, rajouter la ligne:

 
Sélectionnez
<load-on-startup>1</load-on-startup>

Exemple:

 
Sélectionnez
<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>
Créé le 16 février 2005  par bahamouth

Ces messages sont composés de deux parties. Pour débugger il faut regarder la deuxieme partie qui commence après :

 
Sélectionnez
root cause

Ou enore le message

 
Sélectionnez
cause mere

L'erreur est alors indiquée sous la forme d'une exception.

Créé le 16 mars 2005  par christopheJ

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 :

 
Sélectionnez
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
</tomcat-users>

Dès lors, il nous suffit de déclarer le rôle manager :

 
Sélectionnez
<role rolename="manager"/>

Enfin, nous pouvons ajouter un utilisateur :

 
Sélectionnez
<user username="adminTomcat" password="admin" roles="manager"/>

Au final, notre fichier ressemblera à ceci :

 
Sélectionnez
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
	<role rolename="manager"/>
	<user username="adminTomcat" password="admin" roles="manager"/>
</tomcat-users>

Suite à ça, vous pourrez vous authentifier sous Tomcat afin de pouvoir gérer votre conteneur de servlets.

Créé le 16 février 2005  par X-plode : Mike François

Il suffit tout simplement de rajouter l'option suivante :

 
Sélectionnez
-Djava.library.path=<chemin vers DLL>

dans la variable d'environnement TOMCAT_OPTS.

Créé le 22 décembre 2009  par v1nc3kr0
  

Les 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 © 2003 - 2013 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.