You are not logged in.
Pages: 1
Bonjour,
J'essaye de configurer le front-office sur ma wheezy depuis le back-office (http://domaine:8080/). J'ai ajouté, bien que je n'y comprenne pas grand-chose, un connecteur sur le port 8081 dans /etc/tomcat7/server.xml.
J'espère ainsi pouvoir afficher le front-office via autredomaine.fr:8081 avec mon site configuré... mais j'ai une erreur verbeuse :
An error occurred. Please contact the administrator of the application.org.apache.avalon.framework.component.ComponentException: Unable to initialize the ComponentManager (key [org.apache.cocoon.Processor]) at org.ametys.runtime.cocoon.TreeProcessor.compose(TreeProcessor.java:94) at org.apache.avalon.framework.container.ContainerUtil.compose(ContainerUtil.java:173) at org.apache.avalon.excalibur.component.DefaultComponentFactory.newInstance(DefaultComponentFactory.java:266) at org.apache.avalon.excalibur.component.ThreadSafeComponentHandler.initialize(ThreadSafeComponentHandler.java:108) at org.apache.avalon.excalibur.component.ExcaliburComponentManager.initialize(ExcaliburComponentManager.java:524) at org.apache.cocoon.components.CocoonComponentManager.initialize(CocoonComponentManager.java:583) at org.apache.avalon.framework.container.ContainerUtil.initialize(ContainerUtil.java:244) at org.apache.cocoon.Cocoon.initialize(Cocoon.java:345) at org.apache.avalon.framework.container.ContainerUtil.initialize(ContainerUtil.java:244) at org.apache.cocoon.servlet.CocoonServlet.createCocoon(CocoonServlet.java:1435) at org.ametys.runtime.servlet.RuntimeServlet.createCocoon(RuntimeServlet.java:225) at org.apache.cocoon.servlet.CocoonServlet.init(CocoonServlet.java:495) at org.ametys.runtime.servlet.RuntimeServlet.init(RuntimeServlet.java:171) at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5026) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5313) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:650) at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1582) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:679) Caused by: org.apache.avalon.framework.configuration.ConfigurationException: Specified driver class does not exist: org.apache.derby.jdbc.EmbeddedDriver at org.ametys.runtime.datasource.DataSourceExtensionPoint.addExtension(DataSourceExtensionPoint.java:65) at org.ametys.runtime.plugin.PluginsManager._loadExtensions(PluginsManager.java:1077) at org.ametys.runtime.plugin.PluginsManager._loadFeatures(PluginsManager.java:1030) at org.ametys.runtime.plugin.PluginsManager.initExtensions(PluginsManager.java:472) at org.ametys.runtime.cocoon.TreeProcessor.compose(TreeProcessor.java:65) ... 29 more Caused by: java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:188) at org.ametys.runtime.datasource.DataSourceExtensionPoint.addExtension(DataSourceExtensionPoint.java:61) ... 33 more
et dans les journaux l'application donne :
http://localhost:8081//_invalidate-skin/demo, response: HTTP/1.1 500 Erreur Interne de Servlet
2013-10-09 12:00:10,306 ERROR [org.ametys.web.cache.InvalidateSiteCacheObserver] (http-bio-8080-exec-8;/_admin/plugins/web/sites/config-site) Unable to invalidate cache with request: http://localhost:8081//_resetCache, response: HTTP/1.1 500 Erreur Interne de Servlet
2013-10-09 12:00:10,358 ERROR [sitemap] (http-bio-8080-exec-8;/_admin/plugins/web/sites/config-site) Unable to invalidate cache with request: http://localhost:8081//_invalidate-site/sitetest, response: HTTP/1.1 500 Erreur Interne de Servlet
2013-10-09 12:00:10,371 ERROR [sitemap] (http-bio-8080-exec-8;/_admin/plugins/web/sites/config-site) Unable to invalidate cache with request: http://localhost:8081//_invalidate-skin/demo, response: HTTP/1.1 500 Erreur Interne de Servlet
Est-ce que vous avez une petite idée pour pallier mon incompétence ?
Offline
Donc vous avez un seul tomcat, avec 2 connecteurs : le back sur un connecteur et le front sur un autre, c'est ça ?
Raphael Franchet
Expert Ametys
Offline
Dans vos logs, on trouve "Specified driver class does not exist: org.apache.derby.jdbc.EmbeddedDriver"
Ce qui signifie que, par exemple, vous pointez sur une base mysql, mais n'avez pas ajouté le jar "mysql-connector" dans WEB-INF/lib (je crois que c'est expliqué dans la doc d'installation - mais peut être indiqué uniquement coté back, il faut le faire aussi sur le front dans votre cas)
Les autres erreurs découlent de celle là je pense (à savoir que le cms n'arrive pas à contacter le site, car le site ne démarre pas, car il n'a pas son driver sql)
Raphael Franchet
Expert Ametys
Offline
> vous avez un seul tomcat, avec 2 connecteurs : le back sur un connecteur et le front sur un autre, c'est ça ?
Exact.
Par contre, j'avais aussi pensé au driver mysql, mais il est bien présent
root@sfa-139-239:~# ls -alh /home/cms/Ametys_CMS/application/site/WEB-INF/lib/mysql-connector-java-5.1.26-bin.jar
-rw-r--r-- 1 tomcat7 tomcat7 836K juil. 24 02:07 /home/cms/Ametys_CMS/application/site/WEB-INF/lib/mysql-connector-java-5.1.26-bin.jar
Pas d'autre piste ?
Offline
L'ajout de mon code dans server.xml de /etc/tomcat7 vous semble-t-elle correcte ?
<Service name="Catalina">
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000"
URIEncoding="UTF-8" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
</Service>
Last edited by etre (09/10/2013 14:46:30)
Offline
De même, j'ai configuré sur "localhost:8081 l'application site, mais est-ce pertinent. Pour accéder à la machine, j'adresse mondomaine:8080 (et pas localhost puisque c'est un serveur avec juste le terminal). Je suis parti du principe que pour faire du multisites (monsite1.fr et toto.net accessibles sur la même IP au travers l'application site installée sur localhost:8081), il fallait que ce soit Ametys qui gère tout ça... d'où localhost.
C'est une approche correcte ? (En fait en l'écrivant ça me semble bizarre puisqu'alors, comment communique le back office et le front office si ces applications sont hébergées sur deux machines différentes ?)
Offline
Déjà, vous pouvez tout à fait avoir les 2 applications sur un seul tomcat avec un seul connecteur (pour simplifier).
Par exemple, http://localhost:8080/cms et http://localhost:8080/
(SAUF si vous viser d'avoir pour le cms à la fin)
Ensuite, dans les configuration il y a plusieurs endroits où on vous demande des urls:
1) dans la conf du backoffice, on vous demande l'url du backoffice : c'est pour envoyer des liens par mail : il faut donc l'url internet (et pas localhost)
2) dans la conf du backoffice, on vous demande l'ip du frontoffice : c'est pour protéger l'accès au back. Il faut saisir l'ip de la machine qui sera utilisée par le frontoffice : par exemple 127.0.0.1
3) dans la conf du backoffice, on vous demande l'url des applications front, c'est l'url locale de chaque application site. même si vous avez 40 sites, en général c'est hébergé par une seule application site. ça sert au backoffice à appeler le front pour qu'il vide son cache
4) dans la conf des sites du backoffice, on vous demande l'url du site : c'est l'url publique de votre site. par exemple ou http://monserveur:8080 sur un intranet en test.
5) dans le front office, on vous demande l'url du back pour demander le contenu des pages. c'est une url interne aussi
Exemples de valeurs:
1)
2) 127.0.0.1
3) http://localhost:8080
4)
5) http://localhost:8081
dans lequel l'appli cms est sur le port 8080 à la racine du tomcat, le site sur 8081 à la racine du tomcat
et dans lequel apache fait cms.monserveur.com => localhost:8080 ; => localhost:8081
Raphael Franchet
Expert Ametys
Offline
Est-ce que vous pouvez joindre le fichier de log (WEB-INF/logs) ça sera plus lisible ?
Raphael Franchet
Expert Ametys
Offline
Bonjour,
Tout ça me paraît tout à fait logique. Merci pour ces explications claires. Je pense pourtant avoir respecté cette philosophie de fonctionnement mais j'ai, probablement trop pressé, du rater une étape.
Simplifions : je me place dans votre premier cas avec un 2 applications sur un seul tomcat avec un seul connecteur (pour simplifier et donc le server.xml standard, j'ai juste remplacé localhost par admin.domaine.net). J'ai choisi comme url Ametys et
J'ai donc installé /etc/tomcat7/Catalina/admin.domaine.net/ROOT.xml et /etc/tomcat7/Catalina/admin.domaine.net/site.xml dans l'esprit de la doc. J'ai ensuite
1) Conf back office
Adresse du back-office
Adresses IP des front-offices 192.168.139.239
Applications front-office
2) conf des sites du backoffice
Url
3) conf du front office
Je n'ai pas accès
Je déclare coté navigateur admin.domaine.net et nouveau.domaine.net pointant vers l'IP 192.168.139.239 dans le cache local (/etc/hosts chez moi). J'ai par ailleurs créé un utilisateur test qui a un super profil sur le site (une page unique que j'ai validé) nouveau.domaine.net.
Un petit
root@sfa-139-239:~# service tomcat7 restart
[ ok ] Stopping Tomcat servlet engine: tomcat7.
[ ok ] Starting Tomcat servlet engine: tomcat7.
plus tard j'obtiens une page d'erreur en esssayant d'ouvrir
Je vous mets le WEB-INF/logs/cms<DATE>.log en pièce jointe, bien entendu seuls les derniers logs sont dans la configuration décrite.
Last edited by etre (09/10/2013 23:31:06)
Offline
Alors l'erreur coté site est la même qu'auparavant à savoir
Caused by: org.apache.avalon.framework.configuration.ConfigurationException: Specified driver class does not exist: org.apache.derby.jdbc.EmbeddedDriver
Ce qui veut dire que vous utilisez à un endroit une base derby dans le jar associé.
Notamment si vous avez laissé une conf comme celle là coté site : org.apache.derby.jdbc.EmbeddedDriver
Vous pouvez copier le jar de derby que vous trouverez dans le cms/WEB-INF/lib
concernant votre conf 2 remarques,
1) en mettant le site sur /site, vous êtes obligé d'avoir vos urls de site qui commencent /site. en général on fait l'inverse (/cms pour le cms et / pour le site) ce qui permet d'avoir un site en /, un autre en /autresite, etc... Mais évidemment ce que vous avez fait fonctionnera aussi
2) dans la conf de tomcat, vous avez une instruction de "host" par défaut sur la balise <engine> vous trouverez defaultHost="localhost". Du coup si le tomcat est appelé avec un host inconnu, il bascule sur celui là. Du coup en général inutile de déclarer le host (sauf si vous voulez gérer plusieurs nom de domaine) car n'importe quel nom de domaine arrivant sur votre machine basculera sur localhost par défaut. Et pour faire du multihost, en général on le fait au niveau d'apache seulement... mais c'est une question de goût
Suite à ces rq, je pense donc qu'il y a un problème dans votre conf, puisque vous avez indiqué comme url pour un site Url car
1) tomcat ne saura par accepter cette requete : il ne connait pas ce hostname.
2) vous avez installé l'appli site sur le context /site, cela implique que tous les sites commencent par /site (pour de basses considérations techniques)
Je vous conseille donc de
1) ajouter le driver derby dans l'application site
2) configurer votre tomcat sur le host localhost (ou changer le defaut host)
3) mettre le cms sur /cms
4) mettre le site sur /
5) changer les configurations associées dans le cms et dans le site qui devrait refonctionner
Raphael Franchet
Expert Ametys
Offline
Bien, c'était bien le driver derby qui empêchait l'application site de se lancer. J'ai juste fait le copier/coller de derby-10.5.3.0_1.jar présent dans cms/WEB-INF/lib vers site//WEB-INF/lib et ça se lance. Je ne m'explique pas son absence (j'ai juste dézzippé l'archive dans le répertoire après l'avoir téléchargé avec wget chez vous).
J'ai encore quelques problèmes pour afficher mon site, mais ce doit être un souci de configuration coté cms, je vais déjà lire la doc
En tous cas merci beaucoup de m'avoir accompagné dans ma première installation d'Ametys, je ne doute pas d'avoir bientôt encore à vous solliciter. Un support si réactif et gracieux, ce serait dommage de s'en priver
Last edited by etre (10/10/2013 20:33:25)
Offline
Soit vous utilisez la version demo et le jar de derby est fourni dans jetty, soit vous utilisez la version de production et il n'y a pas de configuration fournie.
En l'occurrence s'il a besoin de derby.jar c'est que vous avez remplit un paramètre de configuration avec le nom de la classe derby. C'était peut être la valeur par défaut que vous avez validé?
Raphael Franchet
Expert Ametys
Offline
Oui, c'est sans doute ce qui c'est produit. Maintenant ça fonctionne bien, je vais pouvoir explorer les possibles. Mon avis c'est que c'est tout de même un peu long pour pouvoir juste tester Ametys. Un package debian/ubuntu pour la dernière stable serait un plus pour des mauvais en Java comme moi
Merci encore pour le coup de main.
Offline
ok. si c'est juste pour tester, vous avez accès à une version de démo en ligne et/ou un package de démonstration qui s'auto-installe sur windows ou linux (non serveur)
l'avantage, c'est que c'est déjà rempli de données (pages, utilisateurs, droits...)
Raphael Franchet
Expert Ametys
Offline
Pages: 1