<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Everything is wrong &#187; Tomcat</title>
	<atom:link href="http://everythingiswrong.free.fr/index.php/tag/tomcat/feed/" rel="self" type="application/rss+xml" />
	<link>http://everythingiswrong.free.fr</link>
	<description>Un blog dédié à l&#039;informatique en général</description>
	<lastBuildDate>Wed, 06 Oct 2021 21:20:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>@Model versus @Named versus @ManagedBean</title>
		<link>http://everythingiswrong.free.fr/index.php/2014/02/04/model-versus-named-versus-managedbean/</link>
		<comments>http://everythingiswrong.free.fr/index.php/2014/02/04/model-versus-named-versus-managedbean/#comments</comments>
		<pubDate>Tue, 04 Feb 2014 21:52:29 +0000</pubDate>
		<dc:creator>Yan</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[Java J2EE]]></category>
		<category><![CDATA[CDI]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[Tomcat]]></category>

		<guid isPermaLink="false">http://everythingiswrong.free.fr/?p=2466</guid>
		<description><![CDATA[@Model, @Named, @ManagedBean ! Quelles annotations utiliser...]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Lorsque l&#8217;on débute en J2EE il est parfois difficile de voir la différence entre certaines annotations. Elles proviennent souvent de spécifications (JSR) différentes et peuvent avoir un rôle similaire ou totalement identique. Certaines fois, il s&#8217;agit uniquement d&#8217;une différence de contexte dans lequel le code est développé ou déployé.</p>
<p style="text-align: justify;">Les annotations suivantes sont utiles pour déclarer des objets Java qui vont être accessibles dans le langage EL via les symboles <em>#{}</em> (on parle d&#8217;outjection par opposition à injection).</p>
<h2>@javax.faces.bean.ManagedBean</h2>
<p style="text-align: justify;">Cette annotation arrive avec la <a href="https://jcp.org/en/jsr/detail?id=314" target="_blank">JSR-314 JavaServer Faces 2.0</a>. Grâce à elle, il n&#8217;est plus nécessaire de déclarer les Managed Bean JSF dans le fichier XML faces-config.xml. Elle n&#8217;est utile que lorsque le l&#8217;application développée est déployée dans un contexte où le conteneur CDI n&#8217;existe pas, comme Tomcat par example.</p>
<p style="text-align: justify;">De plus, elle peut facilement être confondue avec l&#8217;annotation suivante @java.annotation.ManagedBean.</p>
<h2>@javax.annotation.ManagedBean</h2>
<p style="text-align: justify;">Cette annotation est définie dans la <a href="https://jcp.org/en/jsr/detail?id=316" target="_blank">JSR-250</a>. Elle est utilisée pour déclarer un managed bean spécifié dans la <a href="https://jcp.org/en/jsr/detail?id=316" target="_blank">JSR-316</a>. Il ne faut pas confondre avec les managed bean JSF. Le principe de la JSR-316 est de pouvoir transformer n&#8217;importe quel POJO (Plain Old Java Object) en objet pouvoir avoir un cycle de vie, des intercepteurs, etc.</p>
<p style="text-align: justify;">Dans un contexte CDI, cette annotation est obsolète car le principe du CDI est de transformer tous les POJO en Managed Bean. Donc cette annotation n&#8217;est pas du tout utile. Elle n&#8217;aura d&#8217;ailleurs aucun impact visible sur l&#8217;exécution du code.</p>
<h2>@javax.enterprise.inject.Model @javax.inject.Named</h2>
<p style="text-align: justify;">L&#8217;annotation @Model est équivalante à l&#8217;annotation @Named à laquel il a été rajouté le contexte @RequestScoped (@javax.enterprise.context.RequestScoped).</p>
<p style="text-align: justify;">Ces annotations proviennent de la <a href="https://jcp.org/en/jsr/detail?id=299" target="_blank">JSR 299 “contexts and dependency injection” (CDI)</a>. Cette JSR offre beaucoup plus de possibilités d&#8217;utilisation que celle sur JSF2.0. Dans un contexte où une application est déployée dans un conteneur compatible CDI il est donc préférable d&#8217;utiliser les annotations CDI plutôt que JSF2.0.</p>
<h2 style="text-align: justify;">Conclusion</h2>
<p style="text-align: justify;">Le choix de l&#8217;annotation à utiliser dépend essentiellement du conteneur où l&#8217;application sera déployée. Il est toujours préférable d&#8217;utiliser les annotations provenant de la JSR-299 (CDI) dans le cas où le conteneur est compatible avec CDI.</p>
<p style="text-align: justify;">Pour plus d&#8217;information cet article est très intéressant : <a href="https://weblogs.java.net/blog/cayhorstmann/archive/2009/12/23/javaxfacesbeanmanagedbean-dead-arrival" target="_blank">Is @javax.faces.bean.ManagedBean Dead on Arrival?</a></p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://everythingiswrong.free.fr/index.php/2014/02/04/model-versus-named-versus-managedbean/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tomcat + weld + JSF : java.lang.OutOfMemoryError: PermGen space</title>
		<link>http://everythingiswrong.free.fr/index.php/2013/06/01/tomcat-weld-jsf-java-lang-outofmemoryerror-permgen-space/</link>
		<comments>http://everythingiswrong.free.fr/index.php/2013/06/01/tomcat-weld-jsf-java-lang-outofmemoryerror-permgen-space/#comments</comments>
		<pubDate>Sat, 01 Jun 2013 08:48:33 +0000</pubDate>
		<dc:creator>Yan</dc:creator>
				<category><![CDATA[Java J2EE]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[Tomcat]]></category>
		<category><![CDATA[Weld]]></category>

		<guid isPermaLink="false">http://everythingiswrong.free.fr/?p=2211</guid>
		<description><![CDATA[Configuration de la mémoire de type PermGen dans une application utilisant Tomcat, Weld et JSF2]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Après avoir démarré une application utilisant tomcat, weld-servet et JSF2, je me suis rendu compte que j&#8217;obtenais rapidement des erreurs de mémoire sur la PermGen space. En gros mon application, aussi petite soit elle, utilisait beaucoup plus de classes que ce que je pensais et surtout que ce que la JVM de Sun pouvait contenir par défaut.</p>
<p style="text-align: justify;">Pour rappel, cette partie de la mémoire est utilisée dans les JVM de Sun pour stocker les classes chargées par le classloader, elle ne se vide jamais sauf si l&#8217;on fait des actions directement sur le classloader. La valeur par défaut de cette mémoire est de 64Mo.</p>
<p style="text-align: justify;">A priori, cette valeur n&#8217;est pas assez grande pour contenir l&#8217;ensemble des classes chargées par weld-servlet et JSF2 dans un tomcat. Pour éviter de retrouver ces erreurs de mémoire, il faut donc l&#8217;augmenter avec le paramètre dans la JVM :</p>
<p class="wp-caption">-XX:MaxPermSize=256m</p>
<p style="text-align: justify;">Il est possible de voir l&#8217;évolution de cette mémoire avec le programme <a href="http://visualvm.java.net/" target="_blank">VisualVM</a> qui est fourni par défaut dans une JDK.</p>
]]></content:encoded>
			<wfw:commentRss>http://everythingiswrong.free.fr/index.php/2013/06/01/tomcat-weld-jsf-java-lang-outofmemoryerror-permgen-space/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mod_jk : Apache &amp; tomcat</title>
		<link>http://everythingiswrong.free.fr/index.php/2011/08/19/mod_jk-apache-tomcat/</link>
		<comments>http://everythingiswrong.free.fr/index.php/2011/08/19/mod_jk-apache-tomcat/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 19:49:29 +0000</pubDate>
		<dc:creator>Yan</dc:creator>
				<category><![CDATA[Java J2EE]]></category>
		<category><![CDATA[Système]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[mod_jk]]></category>
		<category><![CDATA[Tomcat]]></category>

		<guid isPermaLink="false">http://yan.langlois.free.fr/wordpress/?p=1585</guid>
		<description><![CDATA[Comment configurer le connecteur mod_jk pour faire fonctionner un serveur tomcat derrière un serveur Apache.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">A chaque fois que j&#8217;essaie de configurer un tomcat derrière un serveur apache, je tombe toujours sur les mêmes problèmes, je perds toujours du temps à retrouver les mêmes solutions dans les documentations. C&#8217;est pour cela que j&#8217;écris cet article que j&#8217;espère le plus simple et pratique que possible.</p>
<p style="text-align: justify;">Après avoir installé les deux serveurs, il faut télécharger le module apache mod_jk (la version 1.2) sur ce site : <a href="http://tomcat.apache.org/download-connectors.cgi" target="_blank">http://tomcat.apache.org/download-connectors.cgi</a>.</p>
<p style="text-align: justify;">Déposer le fichier mod_jk.so (qui se trouve dans l&#8217;archive téléchargée) dans le répertoire <em>$APACHE_HOME/modules/</em>. Pour configurer ce connecteur, deux fichiers sont nécessaires</p>
<ul>
<li style="text-align: justify;">workers.properties : permet au connecteur de se connecter au serveur tomcat.</li>
<li style="text-align: justify;">httpd.conf : permet au connecteur de rediriger les requêtes HTTP vers le serveur tomcat.</li>
</ul>
<p style="text-align: justify;">Voici un fichier <em>worker.properties</em> exemple :</p>
<pre class="wp-caption" style="text-align: justify;">  # La liste des workers
  worker.list= worker1, jkstatus

  # Configuration du worker1 : connexion à tomcat
  worker.worker1.type=ajp13
  worker.worker1.host=localhost
  worker.worker1.port=8009

  # Configuration de jkstatus : agrège des statistiques sur le connecteur
  worker.jkstatus.type=status</pre>
<p style="text-align: justify;">Voici quelques lignes à ajouter au fichier <em>httpd.conf</em> pour configurer mod_jk :</p>
<pre class="wp-caption" style="text-align: justify;">  LoadModule    jk_module  modules/mod_jk.so
  JkWorkersFile workers.properties
  JkLogFile     /usr/local/apache/logs/mod_jk.log
  JkLogLevel    info
  JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "</pre>
<p style="text-align: justify;">Une fois cette communication faite il faut rendre les applications tomcat visibles depuis Apache. Cette étape peut être aussi bien réalisée à partir du fichier <em>httpd.conf</em> que <em>worker.properties</em>. Par exemple, voici la directive à ajouter au fichier de configuration du serveur Apache :</p>
<pre class="wp-caption" style="text-align: justify;">   JkMount /my-webapplication/* worker1
   JkMount /my-webapplication worker1
   JkMount /jkstatus* jkstatus</pre>
<p style="text-align: justify;">Il existe beaucoup d&#8217;autre façons de configurer ces deux serveurs. Pour plus d&#8217;information voici quelques sites qui décrivent dans les détails les différentes configurations possibles :</p>
<ul>
<li><a href="http://tomcat.apache.org/tomcat-3.3-doc/mod_jk-howto.html" target="_blank">http://tomcat.apache.org/tomcat-3.3-doc/mod_jk-howto.html</a></li>
<li><a href="http://tomcat.apache.org/connectors-doc/reference/apache.html" target="_blank">http://tomcat.apache.org/connectors-doc/reference/apache.html</a></li>
<li><a href="http://tomcat.apache.org/connectors-doc/generic_howto/workers.html" target="_blank">http://tomcat.apache.org/connectors-doc/generic_howto/workers.html</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://everythingiswrong.free.fr/index.php/2011/08/19/mod_jk-apache-tomcat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>tomcat-maven-plugin : debug</title>
		<link>http://everythingiswrong.free.fr/index.php/2011/04/29/tomcat-maven-plugin-debug/</link>
		<comments>http://everythingiswrong.free.fr/index.php/2011/04/29/tomcat-maven-plugin-debug/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 20:00:24 +0000</pubDate>
		<dc:creator>Yan</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[Java J2EE]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Tomcat]]></category>

		<guid isPermaLink="false">http://yan.langlois.free.fr/wordpress/?p=1294</guid>
		<description><![CDATA[Comment débugger une application web avec le plugin tomcat-maven-plugin ?]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Le <a href="http://mojo.codehaus.org/tomcat-maven-plugin" target="_blank">plugin tomcat</a> de Maven est très pratique lors du développement d&#8217;une application web. Voici comment le configurer :</p>
<pre class="brush: xml; toolbar: true;"> &lt;!-- Embedded Tomcat (package tomcat:run) --&gt;
 &lt;!-- Standalone Tomcat (package tomcat:deploy) --&gt;
 &lt;plugin&gt;
   &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
   &lt;artifactId&gt;tomcat-maven-plugin&lt;/artifactId&gt;
   &lt;configuration&gt;
     &lt;path&gt;/${project.build.finalName}&lt;/path&gt;
     &lt;!-- Embedded port --&gt;
     &lt;port&gt;9090&lt;/port&gt;
   &lt;/configuration&gt;
 &lt;/plugin&gt;
</pre>
<p style="text-align: justify;">Le plugin démarre le serveur dans la sa propre JVM. Pour pouvoir débuger votre application, il faut donc uniquement démarrer Maven avec l&#8217;option de debug comme cela :</p>
<p><code class="wp-caption">mvn tomcat:run -DXdebug -DXnoagent -Djava.compiler=NONE -DXrunjdwp:transport=dt_socket,address=3998,suspend=n,server=y</code></p>
<p style="text-align: justify;">Ou bien, si vous utilisez eclipse avec le plugin <a href="http://m2eclipse.sonatype.org/" target="_blank">m2eclipse</a> : cliquer avec le bouton droit de votre souris sur le projet : <em>Debug As -&gt; Maven build &#8230;</em> .</p>
]]></content:encoded>
			<wfw:commentRss>http://everythingiswrong.free.fr/index.php/2011/04/29/tomcat-maven-plugin-debug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
