Jackrabbit

From Resin 3.0

(Difference between revisions)
Jump to: navigation, search
Line 3: Line 3:
 
''[Tested with Resin 3.1.5 and Jackrabbit 1.4]''
 
''[Tested with Resin 3.1.5 and Jackrabbit 1.4]''
  
# Download Resin from http://caucho.com/download
+
<ol>
# Unzip Resin into /usr/local/share/resin
+
<li>Download Resin from http://caucho.com/download
# Download the JCR API from http://www.day.com/maven/jsr170/jars/jcr-1.0.jar
+
<li>Unzip Resin into /usr/local/share/resin
# Put the JCR .jar in resin/ext-lib (it will be shared for all web-apps)
+
<li>Download the JCR API from http://www.day.com/maven/jsr170/jars/jcr-1.0.jar
# Download the jackrabbit .rar file from http://jackrabbit.apache.org/downloads.cgi
+
<li>Put the JCR .jar in resin/ext-lib (it will be shared for all web-apps)
# Put the jackrabbit .rar in resin/deploy
+
<li>Download the jackrabbit .rar file from http://jackrabbit.apache.org/downloads.cgi
# Make sure resin-support.jar is in resin/ext-webapp-lib (to enable the uri="jackrabbit:" syntax below)
+
<li>Put the jackrabbit .rar in resin/deploy
# Create a webapp in resin/webapps/jackrabbit
+
<li>Make sure resin-support.jar is in resin/ext-webapp-lib (to enable the uri="jackrabbit:" syntax below)
# Create or copy a repository.xml to WEB-INF/repository.xml (look inside the .rar for a sample)
+
<li>Create a webapp in resin/webapps/jackrabbit
# Create a resin/webapps/jackrabbit/WEB-INF/resin-web.xml to configure the Jackrabbit session factory:
+
<li>Create or copy a repository.xml to WEB-INF/repository.xml (look inside the .rar for a sample)
 
+
<li>Create a resin/webapps/jackrabbit/WEB-INF/resin-web.xml to configure the Jackrabbit session factory:
 +
<code><pre>
 
   <web-app xmlns="http://caucho.com/ns/resin">
 
   <web-app xmlns="http://caucho.com/ns/resin">
 
      
 
      
Line 28: Line 29:
 
   
 
   
 
   </web-app>
 
   </web-app>
 
+
</pre></code>
# Create a demo servlet to test JCA in WEB-INF/classes/demo/FirstHopServlet.java (Resin will compile the servlet for you):
+
<li>Create a demo servlet to test JCA in WEB-INF/classes/demo/FirstHopServlet.java (Resin will compile the servlet for you):
 
+
<code><pre>
 
   package demo;
 
   package demo;
 
   
 
   
Line 68: Line 69:
 
   }
 
   }
 
  }
 
  }
# Start Resin with java -jar resin/lib/resin.jar
+
</pre></code>
# Browse http://localhost:8080/jackrabbit
+
<li>Start Resin with java -jar resin/lib/resin.jar
 +
<li>Browse http://localhost:8080/jackrabbit
 +
</ol>

Revision as of 19:58, 27 January 2008

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