On Fri, Dec 7, 2012 at 4:03 PM, Vincent Massol
<vincent(a)massol.net> wrote:
Hi,
On Dec 7, 2012, at 3:28 PM, Naoufel Chbihi <Naoufel.Chbihi(a)ssc-spc.gc.ca>
wrote:
Hello
I am interested in running Xwiki Enterprise using the WAR file on an
Apache
Geronimo 3.0 server. I have been trying to do so for about two
weeks now but haven't been able to start Xwiki successfully I initially
tried with Xwiki Enterprise 4.2 and then with 4.3 but with no success.
Here are the steps that I have performed in my most recent attempt:
1) Installed a MySQL server, created an xwiki
database, defined an xwiki
user (with password xwiki), and granted the user all
permissions to the
database. I am able to successful connect to the xwiki database using a
database client.
2) Downloaded and extracted the Apache Geronimo
3.0.0 ZIP file
3) Placed the dependency JAR files in the appropriate directories inside
the
Geronimo repository directory.
4) Created a geronimo-web.xml file and
copied-and-pasted the complete
sample file contents provided at
http://platform.xwiki.org/xwiki/bin/view/AdminGuide/InstallationGeronimo.
I updated the version numbers in geronimo-web.xml file to match the
versions of the JAR files that I placed in the repository.
5) Defined a JDBC datasource in Geronimo using
the procedure described
in
http://platform.xwiki.org/xwiki/bin/view/AdminGuide/InstallationGeronimo
6) Downloaded the XWiki 4.3 WAR file and deployed
it on the Geronimo
server (specifying the customized geronimo-web.xml file on the
deployment
page). The deployment was successful.
7) Modified the hibernate.cfg.xml file by
commenting out the default
database configuration and specifying the appropriate
parameters for the
MySQL database (which is what I'm using).
8) Copied the modified geronimo-web.xml file into
Xwiki's WEB-INF folder.
9) When I tried to start the XWiki application, the following errors
were
generated in the log file:
[snip]
Caused by: java.lang.ClassCastException:
org.ops4j.pax.logging.slf4j.Slf4jLoggerFactory cannot be cast to
ch.qos.logback.classic.LoggerContext
at
org.xwiki.logging.logback.internal.LogbackUtils.getLoggerContext(LogbackUtils.java:50)
at
org.xwiki.logging.logback.internal.LogbackUtils.getRootLogger(LogbackUtils.java:58)
at
org.xwiki.logging.logback.internal.LogbackEventGenerator.initialize(LogbackEventGenerator.java:96)
at
org.xwiki.component.embed.InitializableLifecycleHandler.handle(InitializableLifecycleHandler.java:39)
at
org.xwiki.component.embed.EmbeddableComponentManager.createInstance(EmbeddableComponentManager.java:323)
at
org.xwiki.component.embed.EmbeddableComponentManager.getComponentInstance(EmbeddableComponentManager.java:378)
at
org.xwiki.component.embed.EmbeddableComponentManager.getInstanceMap(EmbeddableComponentManager.java:185)
This is the real error and it's bad, it means we're doing something
wrong…. We're wrongly assuming that you're using Logback whereas apparently
something else is used, probably because it's on the servlet container's
classloader.
It's not that simple, we are not assuming that logback is always the
logger, we are just packing the default XE with a logback implementation of
the logger manager which obviously expect to find logback. All we can do is
just do nothing if it's not logback but that means losing a few features
like the log displayed in the Extension Manager for example.