Any ideas? I'm beginning to think this may be a bug.
org.apache.jackrabbit.jcr2spi.RepositoryImpl.java expects a
javax.naming.spi.ObjectFactory implementation, but I looked over the
entire Jackrabbit workspace and found only the following classes
implement javax.naming.spi.ObjectFactory:
org.apache.jackrabbit.core.jndi.BindableRepositoryFactory
org.apache.jackrabbit.jcr2spi.RepositoryImpl$Factory
org.apache.jackrabbit.rmi.client.ClientRepositoryFactory
BindableRepositoryFactory and ClientRepositoryFactory are unrelated to
WebDAV. RepositoryImpl$Factory is, well, the code that's doing the
checking, So is the code looking for itself??? How does the code
expect users to use it? Does the code expect users to write their own
ObjectFactory implementation and plug it in? Then how exactly is
org.apache.jackrabbit.client.RepositoryFactoryImpl useful?
What do you all think? Thanks.
Ken
Kenneth Yue wrote:
All,
I'm trying to replace, in my META-INF/context.xml,
<Resource name="jcr/repository"
auth="Container"
type="javax.jcr.Repository"
factory="org.apache.jackrabbit.rmi.client.ClientRepositoryFactory"
url="rmi://localhost:1099/jackrabbit.repository"/>
by
<Resource name="jcr/repository"
auth="Container"
type="org.apache.jackrabbit.jcr2spi.RepositoryImpl"
factory="org.apache.jackrabbit.jcr2spi.RepositoryImpl$Factory"
org.apache.jackrabbit.jcr2spi.RepositoryImpl.factory="org.apache.jackrabbit.client.RepositoryFactoryImpl"
org.apache.jackrabbit.jcr2spi.RepositoryImpl.class="org.apache.jackrabbit.client.spi2dav.RepositoryConfigImpl"
org.apache.jackrabbit.repository.spi2dav.uri="http://localhost:8080/jackrabbit/server"/>
but this doesn't work because
org.apache.jackrabbit.client.RepositoryFactoryImpl doesn't implement
javax.naming.spi.ObjectFactory, which lines 249-251 of
org.apache.jackrabbit.jcr2spi.RepositoryImpl.java is looking for. So
how do I replace RMI with WebDAV without "import
org.apache.jackrabbit..." in my code? Thanks in advance.
Ken