Hi Sajith,

2009/12/29 Sajith Puravankara <[email protected]>:
> Hi,
>
> I am new to jackrabbit. I want to setup a content repository for my spring
> web application.
>
> Now it is throwing ClassCastException: cannot cast from BindableRepository
> to javax.jcr.Repository

The jackrabbit-standalone jar is designed to be used in standalone mode,
directly with java -jar and not in a container / servlet engine environment.

Indeed the standalone jar embed all dependencies and in your case the
JCR 1.0 classes (e.g. javax.jcr.Repository)  will be both in jcr-1.0.jar and
in jackrabbit-standalone-1.5.7.jar hence the ClassCastException
(because the same class is loaded by two different class loader).

Removing the jcr-1.0.jar may fix your issue but using the standalone jar
is not recommended here and you will certainly have more ClassCastException
later if you use Lucene or commons-collections or any other JR dependencies.

If you do not want to share the repository between multiple webapps then
I recommend that you write a custom FactoryBean or use JCR Spring
Module [1] to start the repository inside Spring.
In this case you need to have all JR dependencies in in your classpath
(they can be retrieved using Maven).

[1] https://springmodules.dev.java.net/docs/reference/0.9/html/jcr.html#d0e5435

-- 
Sébastien Launay

Reply via email to