Hello.

I have deployed Jackrabbit in Tomcat 7 using the model 2 (Shared J2EE
Resource), but when I try to acces the repository I get NamingException:

javax.naming.NamingException: Cannot create resource instance
  at 
org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:144)
  at javax.naming.spi.NamingManager.getObjectInstance(Unknown Source)
  at org.apache.naming.NamingContext.lookup(NamingContext.java:842)
  at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
  at org.apache.naming.NamingContext.lookup(NamingContext.java:830)
  at org.apache.naming.NamingContext.lookup(NamingContext.java:167)

My code is:

InitialContext context = new InitialContext();Context environment =
(Context) context.lookup("java:comp/env");
// The exception is thrown in this lineRepository repository =
(Repository) environment.lookup("jcr/repository");

I added this resource as a GoblalNamingResource in my Tomcat server.xml:

<Resource name="jcr/globalRepository"
    auth="Container"
    type="javax.jcr.Repository"
    factory="org.apache.jackrabbit.core.jndi.BindableRepositoryFactory"
    configFilePath="C:\Users\vgomez\repository.xml"
    repHomeDir="C:\Users\vgomez\repository"/>

In context.xml I added the ResourceLink:

<ResourceLink
    name="jcr/repository"
    global="jcr/globalRepository"
    type="javax.jcr.Repository"/>

And the web.xml of my web app is:

<?xml version="1.0" encoding="UTF-8"?><web-app
xmlns="http://java.sun.com/xml/ns/j2ee";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd";
    version="2.4">

    <display-name>Archetype Created Web Application</display-name>

    <resource-ref>
        <description>JCR Repository</description>
        <res-ref-name>jcr/repository</res-ref-name>
        <res-type>javax.jcr.Repository</res-type>
        <res-auth>Container</res-auth>
     </resource-ref>
</web-app>

Thank you.

Reply via email to