Jackrabbit

From Resin 3.0

Revision as of 19:55, 27 January 2008 by Ferg (Talk | contribs)
Jump to: navigation, search

Step by Step (JCA)

[Tested with Resin 3.1.5 and Jackrabbit 1.4]

  1. Download Resin from http://caucho.com/download
  2. Unzip Resin into /usr/local/share/resin
  3. Download the JCR API from http://www.day.com/maven/jsr170/jars/jcr-1.0.jar
  4. Put the JCR .jar in resin/ext-lib (it will be shared for all web-apps)
  5. Download the jackrabbit .rar file from http://jackrabbit.apache.org/downloads.cgi
  6. Put the jackrabbit .rar in resin/deploy
  7. Make sure resin-support.jar is in resin/ext-webapp-lib (to enable the uri="jackrabbit:" syntax below)
  8. Create a webapp in resin/webapps/jackrabbit
  9. Create or copy a repository.xml to WEB-INF/repository.xml (look inside the .rar for a sample)
  10. Create a resin/webapps/jackrabbit/WEB-INF/resin-web.xml to configure the Jackrabbit session factory:
 <web-app xmlns="http://caucho.com/ns/resin">
   
   <resource-adapter uri="jackrabbit:"/>

   <connection-factory uri="jackrabbit:" name="jcr/test">
     <init>
       <home-dir>${webApp.root}/WEB-INF/repository</home-dir>
       <config-file>${webApp.root}/WEB-INF/repository.xml</config-file>
     </init>
   </connection-factory>

   <servlet-mapping url-pattern="demo" servlet-class="demo.FirstHopServlet"/>

 </web-app>
  1. Create a demo servlet to test JCA in WEB-INF/classes/demo/FirstHopServlet.java (Resin will compile the servlet for you):
 package demo;

 import java.io.*;
 import javax.servlet.*;
 import javax.jcr.*;
 import javax.webbeans.*;

 public class FirstHopServlet extends GenericServlet {
   @In private Repository _repository;

   public void service(ServletRequest req, ServletResponse res)
     throws IOException, ServletException
   {
     PrintWriter out = res.getWriter();

     try {
       testJackrabbit(out);
     } catch (Exception e) {
       throw new ServletException(e);
     }
  }

  public void testJackrabbit(PrintWriter out)
    throws Exception
  {
    Session session = _repository.login();

    try {
       String user = session.getUserID();
       String name = _repository.getDescriptor(Repository.REP_NAME_DESC);
  
       out.println("Logged in " + user + " to " + name + " repository");
   } finally {
     session.logout();
   }
 }
}
  1. Start Resin with java -jar resin/lib/resin.jar
  2. Browse http://localhost:8080/jackrabbit
Personal tools