This is the exception I get even though I have jackrabbit-core-1.4.6.jar in my
CLASSPATH. I have this working fine untill I compiled my custom LoginModule,
WebDAVLoginModule.java held at a different package say
c.a.z.WebDAVLoginModule.java. This is the trace,
java.lang.NoClassDefFoundError: Could not initialize class
org.apache.jackrabbit.core.jndi.BindableRepositoryFactory
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at
com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:46)
at
javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:654)
at
javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:197)
The repository invocation code ,
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.jackrabbit.core.jndi.BindableRepositoryFactory");
env.put(Context.PROVIDER_URL, "localhost");
InitialContext ctx = new InitialContext(env);
RegistryHelper.registerRepository(ctx, "repo", configFile,
repHomeDir, true);
Repository r = (Repository) ctx.lookup("repo");
And the server.xml entry is as follows for binding the repository under Apps
Server JNDI Tree ...
<Context path="" docBase="pc" debug="4">
<Resource name="repo"
auth="Container"
type="javax.jcr.Repository"
factory="org.apache.jackrabbit.core.jndi.BindableRepositoryFactory"
configFilePath="../webapps/pc/webdav/repository.xml"
repHomeDir="../webapps/pc/webdav"/>
</Context>
</Host>
And this is my repository.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<Repository>
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${rep.home}/repository"/>
</FileSystem>
<Security appName="Jackrabbit">
<AccessManager
class="org.apache.jackrabbit.core.security.SimpleAccessManager"/>
<LoginModule
class="com.adventnet.zohopc.webdav.WebDAVLoginModule">
<param name="anonymousId" value="anonymous"/>
<param name="adminId" value="madhu"/>
</LoginModule>
</Security>
<Workspaces rootPath="${rep.home}/workspaces"
defaultWorkspace="default" />
<Workspace name="${wsp.name}">
<FileSystem
class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${wsp.home}"/>
</FileSystem>
<PersistenceManager
class="org.apache.jackrabbit.core.state.xml.XMLPersistenceManager" />
<SearchIndex
class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
<param name="path" value="${wsp.home}/index" />
</SearchIndex>
</Workspace>
<Versioning rootPath="${rep.home}/versions">
<FileSystem
class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${rep.home}/versions"/>
</FileSystem>
<PersistenceManager
class="org.apache.jackrabbit.core.state.xml.XMLPersistenceManager" />
</Versioning>
</Repository>
~
jaas.config is as follows
/** Login config for JackRabbit **/
Jackrabbit {
com.adventnet.zohopc.webdav.WebDAVLoginModule required
anonymousId="anonymous";
};
I understand that both the entries in jaas.config and in repository.xml for
SimpleLoginModule extensions are mandatory. Pls guide me in case I made a
mistake.
Regards,
MadhuSudhanan I.
www.zoho.com
'If you wanna walk quick Walk Alone, if you wanna walk far Walk Together ..."