Hi everyone,
I've been looking at separating out the persistence module for JCR from the
"core" build - and making it more easily pluggable. However I've come across a
problem with the JCR implementation - while it works OK according to the JCR
persistence test run from Ant, if I try to run Wookie in standalone mode by
setting:
# Embedded Jackrabbit JCR server configuration, (all properties required for
deployed
# non-standalone configurations)
wookie.persistence.manager.type=jcr
#wookie.repository.user=java
#wookie.repository.password=java
#wookie.repository.rootpath=/wookie
#wookie.repository.workspace=default
Then I see this exception when using "ant run":
[java] 19:16:25,915 ERROR log:? - Failed startup of context
org.mortbay.jetty.webapp.WebAppContext@7cf01771{/wookie,build/webapp/wookie}
[java] java.lang.RuntimeException: Unable to load or initialize
PersistenceManager class: java.lang.reflect.InvocationTargetException
[java] at
org.apache.wookie.beans.util.PersistenceManagerFactory.initialize(PersistenceManagerFactory.java:74)
[java] at
org.apache.wookie.server.ContextListener.contextInitialized(ContextListener.java:109)
[java] at
org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:530)
[java] at
org.mortbay.jetty.servlet.Context.startContext(Context.java:135)
[java] at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
[java] at
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
[java] at
org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
[java] at org.mortbay.jetty.Server.doStart(Server.java:210)
[java] at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
[java] at org.apache.wookie.server.Start.startServer(Start.java:124)
[java] at org.apache.wookie.server.Start.main(Start.java:115)
[java] Caused by: java.lang.reflect.InvocationTargetException
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[java] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[java] at java.lang.reflect.Method.invoke(Method.java:597)
[java] at
org.apache.wookie.beans.util.PersistenceManagerFactory.initialize(PersistenceManagerFactory.java:70)
[java] ... 12 more
[java] Caused by: java.lang.RuntimeException: Unable to initialize:
java.lang.ClassCastException: org.apache.jackrabbit.core.TransientRepository
cannot be cast to javax.jcr.Repository
[java] at
org.apache.wookie.beans.jcr.JCRPersistenceManager.initialize(JCRPersistenceManager.java:342)
[java] ... 17 more
[java] Caused by: java.lang.ClassCastException:
org.apache.jackrabbit.core.TransientRepository cannot be cast to
javax.jcr.Repository
[java] at
org.apache.wookie.beans.jcr.JCRPersistenceManager$1.makeObject(JCRPersistenceManager.java:216)
[java] at
org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:840)
[java] at
org.apache.wookie.beans.jcr.JCRPersistenceManager.initialize(JCRPersistenceManager.java:243)
[java] ... 17 more
Any ideas? Can anyone run Wookie standalone with JCR OK?
The code in Start and in the test setup are pretty similar, but I don't really
know enough about JackRabbit to know which differences (if any) might be
important.
S