Jackrabbit

From Resin 3.0

Revision as of 19:58, 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>
    
  11. 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();
        }
      }
     }
    
  12. Start Resin with java -jar resin/lib/resin.jar
  13. Browse http://localhost:8080/jackrabbit
Personal tools