Forum Ametys

Forum de la communauté Ametys

You are not logged in.

#1 09/10/2013 12:32:36

etre
Guest
Registered: 08/10/2013
Posts: 9

impossible d'afficher l'application site

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

#2 09/10/2013 12:42:35

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,091

Re: impossible d'afficher l'application site

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

#3 09/10/2013 12:45:49

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,091

Re: impossible d'afficher l'application site

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

#4 09/10/2013 14:40:12

etre
Guest
Registered: 08/10/2013
Posts: 9

Re: impossible d'afficher l'application site

> 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

#5 09/10/2013 14:45:59

etre
Guest
Registered: 08/10/2013
Posts: 9

Re: impossible d'afficher l'application site

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

#6 09/10/2013 15:17:09

etre
Guest
Registered: 08/10/2013
Posts: 9

Re: impossible d'afficher l'application site

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

#7 09/10/2013 15:46:24

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,091

Re: impossible d'afficher l'application site

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 http://cms.mondomaine.com 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. http://www.mondomaine.com 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) http://cms.monserveur.com
2) 127.0.0.1
3) http://localhost:8080
4) http://www.monserveur.com
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 ; www.monserveur.com => localhost:8081


Raphael Franchet
Expert Ametys

Offline

#8 09/10/2013 15:47:19

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,091

Re: impossible d'afficher l'application site

Est-ce que vous pouvez joindre le fichier de log (WEB-INF/logs) ça sera plus lisible ?


Raphael Franchet
Expert Ametys

Offline

#9 09/10/2013 23:26:19

etre
Guest
Registered: 08/10/2013
Posts: 9

Re: impossible d'afficher l'application site

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 http://admin.domaine.net:8080/ et http://admin.domaine.net:8080/site

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 http://admin.domaine.net:8080
Adresses IP des front-offices 192.168.139.239
Applications front-office http://admin.domaine.net:8080/site

2) conf des sites du backoffice
Url http://nouveau.domaine.net:8080

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 http://admin.domaine.net:8080/site/_admin

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

#10 10/10/2013 09:15:42

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,091

Re: impossible d'afficher l'application site

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 smile

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 http://nouveau.domaine.net:8080 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

#11 10/10/2013 16:10:05

etre
Guest
Registered: 08/10/2013
Posts: 9

Re: impossible d'afficher l'application site

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 wink
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  cool

Last edited by etre (10/10/2013 20:33:25)

Offline

#12 10/10/2013 21:28:23

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,091

Re: impossible d'afficher l'application site

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

#13 11/10/2013 09:54:27

etre
Guest
Registered: 08/10/2013
Posts: 9

Re: impossible d'afficher l'application site

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  roll

Merci encore pour le coup de main.

Offline

#14 11/10/2013 10:11:52

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,091

Re: impossible d'afficher l'application site

ok. si c'est juste pour tester, vous avez accès à une version de démo en ligne http://demo.ametys.org 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

Board footer

Powered by FluxBB