Saltar al contenido
Marcos Peña
Menú
  • Acerca de…
Menú

Configuración Jackrabbit + tomcat + aws s3

Publicada el agosto 12, 2015septiembre 13, 2020 por Marcos
El fin de este tutorial es configurar un servidor jackrabbit que utilice como almacenamiento el servicio S3 de Amazon AWS. Esta fuera del alcance del mismo la configuración del servicio S3 o como emplear el servidor jackrabbit en una aplicación. Apache Jackrabbit es un repositorio de contenido conforme con las especificaciones del API JCR. Ofrece estas ventajas respecto a otras soluciones de almacenamiento de contenido:
  • Es jerárquica, lo que permite organizar su contenido en una estructura que se ajusta a tus necesidades y donde la información relacionada se almacena a menudo cerca y por tanto facilita la nevagación
  • Es flexible, permite que el contenido se adaptar y evolucionae, utilizando un sistema de tipo de nodo que puede ser completamente «esquema agnóstico»
  • Emplea una API estándar de Java (por ejemplo, javax.jcr)
  • Adminte muchas implementaciones JCR, el contenido se puede almancenar en una variedad de bases de datos relacionales y otros tipos de almacenaje, algunos pueden exponer almacenajes no-JCR a través de la API JCR, y algunos pueden federar varios almacenes en un único repositorio virtual.
  • Admite consultas e indexación fulltext
  • Admite eventos, versioneado, locking y otras funcionalidads

Prerequisitos:

  • Jdk de java
  • Servidor tomcat
  • Bibliotecas java para aws
  • Cuenta en amazon AWS

Instalación en centos:

Java

Comprobamos versión de java: $ java -version>>java version "1.7.0_65"OpenJDK Runtime Environment (rhel-2.5.1.2.el6_5-x86_64 u65-b17)OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode) Si no lo tienes instalado, comprueba las versiones que tienes disponible en tu repositorio: # yum search java | grep 'java-'>>libreadline-java-javadoc.x86_64 : Javadoc for libreadline-javalibvirt-java-devel.noarch : Compressed Java source files for libvirt-javalibvirt-java-javadoc.noarch : Java documentation for libvirt-javalpg-java-compat.noarch : Compatibility Java runtime library for LPG 1.xpki-java-tools.noarch : Certificate System - PKI Java-Based Toolspki-java-tools-javadoc.noarch : Certificate System - PKI Java-Based Toolsppl-java-javadoc.x86_64 : Javadocs for ppl-javajava-1.5.0-gcj.x86_64 : JPackage runtime compatibility layer for GCJjava-1.5.0-gcj-devel.x86_64 : JPackage development compatibility layer for GCJjava-1.5.0-gcj-javadoc.x86_64 : API documentation for libgcjjava-1.5.0-gcj-src.x86_64 : Source files for libgcjjava-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environmentjava-1.6.0-openjdk-demo.x86_64 : OpenJDK Demosjava-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environmentjava-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentationjava-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundlejava-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environmentjava-1.7.0-openjdk-demo.x86_64 : OpenJDK Demosjava-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environmentjava-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentationjava-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle y lo instalas: # yum install java-1.7.0-openjdk.x86_64

Tomcat

Descarga: $ cd /tmp$ wget http://www.us.apache.org/dist/tomcat/tomcat-7/v7.0.54/bin/apache-tomcat-7.0.54.tar.gz Y extrea el tomcat: $ tar xzf apache-tomcat-7.0.54.tar.gz# mv apache-tomcat-7.0.54 /usr/local/tomcat7 Otorga permisos a tu usuario sobre el directorio del tomcat: por ejemplo: # chmod -R miusuario:apache /usr/local/tomcat7 Arranca el tomcat: $ cd /usr/local/tomcat7$ ./bin/startup.sh>>Using CATALINA_BASE: /usr/local/tomcat7Using CATALINA_HOME: /usr/local/tomcat7Using CATALINA_TMPDIR: /usr/local/tomcat7/tempUsing JRE_HOME: /opt/jdk1.8.0_05/jreUsing CLASSPATH: /usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/tomcat-juli.jarTomcat started. Ahora deberías poder acceder al tomcat por el navegador:
1
http://localhost:8080
Opcionalmente, puedes configurar las cuentas de administrador del tomcat, editando el fichero /usr/local/tomcat7/config/tomcat-users.xml
Detén el tomcat: $ ./bin/shutdown.sh Script para auto arranque al iniciar la máquina, y para parar o arrancar el servicio. Crea el fichero /etc/init.d/tomcat7 con el siguiente contenido:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/bash
# description: Tomcat Start Stop Restart
# processname: tomcat
# chkconfig: 234 20 80
JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/usr/local/tomcat7
case $1 in
start)
/bin/su tomcat $CATALINA_HOME/bin/startup.sh
;;
stop)  
/bin/su tomcat $CATALINA_HOME/bin/shutdown.sh
;;
restart)
/bin/su tomcat $CATALINA_HOME/bin/shutdown.sh
/bin/su tomcat $CATALINA_HOME/bin/startup.sh
;;
esac    
exit 0

Jackrabbit

Descarga el siguiente archivo, extrae jcr-2.0.jar (lo encontrarás dentro del zip, en /lib si no recuerdo mal) y cópialo en /usr/local/tomcat7/lib/ Descarga la última versión estable del war de jackrabbit-webapp, cambia el nombre del fichero a jackrabbit.war y colócalo en /usr/local/tomcat7/webapp Arranca el servidor tomcat y, una vez descomprimido el war, vuelve a detenerlo. service tomcat start y service tomcat stop Ahora copia el fichero de muestra de bootstrap.properties a la ubicación del repositorio (para este tutorial, utilizaremos este directorio: /home/marcos/repositories): cp usr/local/tomcat7/webapp/jackrabbit/templates/bootstrap.properties /home/marcos/repositories/ A continuación modifica el fichero /usr/local/tomcat7/webapp/jackrabbit/WEB-INF/web.xml para definir la ubicación de bootstrap.properties:
1
2
3
4
5
6
7
8
9
10
11
...
<init-param>
    <param-name>bootstrap-config</param-name>
    <param-value>/home/marcos/repositories/bootstrap.properties</param-value>
    <description>
        Property file that hold the same initialization properties than
        the init-params below. If a parameter is specified in both
        places the one in the bootstrap-config wins.
    </description>
</init-param>
...
Ejemplo fichero bootstrap.properties:
1
2
3
4
5
6
7
8
9
10
11
#bootstrap properties for the repository startup servlet.
#Thu Jul 17 22:53:12 CEST 2014
java.naming.factory.initial=org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory
repository.home=/home/marcos/repositories/jackrabbit
rmi.enabled=true
repository.config=/home/marcos/repositories/jackrabbit/repository.xml
repository.name=jackrabbit.repository
rmi.host=localhost
java.naming.provider.url=http\://www.apache.org/jackrabbit
jndi.enabled=true
rmi.port=8089
Arranca de nuevo el servidor tomcat y apunta el navegador a http://localhost:8080/jackrabbit. Clica en crear nuevo repositorio. Jackrabbit va a crear el repositorio en /home/marcos/repositories y luego se quejará de que ya existe. Detén el servidor tomcat de nuevo: tenemos que editar el fichero /home/marcos/repositories/jackrabbit/repository.xml. Sólo modificaremos el nodo DataStore:
1
2
3
4
5
6
7
8
9
10
11
12
<DataStore class="org.apache.jackrabbit.aws.ext.ds.S3DataStore">
    <param name="config" value="${rep.home}/aws.properties"/>
    <param name="secret" value="123456789"/>
    <param name="minRecordLength " value="16384"/>
    <param name="cacheSize" value="68719476736"/>
    <param name="cachePurgeTrigFactor" value="0.95d"/>
    <param name="cachePurgeResizeFactor" value="0.85d"/>
    <param name="continueOnAsyncUploadFailure" value="false"/>
    <param name="concurrentUploadsThreads" value="10"/>
    <param name="asyncUploadLimit" value="100"/>
    <param name="uploadRetries" value="3"/>
  </DataStore>
Y, ya que estamos, creamos el fichero /home/marcos/repositories/jackrabbit/aws.properties, donde definimos las propiedades para conectar con S3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
 
# AWS account ID
accessKey=CLAVEACCESO
# AWS secret key
secretKey=SUPERSECREATA
# AWS bucket name
s3Bucket=NOMBREDELBUCKET
# AWS bucket region
# Mapping of S3 regions to their constants
# US Standard us-standard
# US West us-west-2
# US West (Northern California) us-west-1
# EU (Ireland) EU
# Asia Pacific (Singapore) ap-southeast-1
# Asia Pacific (Sydney) ap-southeast-2
# Asia Pacific (Tokyo) ap-northeast-1
# South America (Sao Paulo) sa-east-1
s3Region=us-standard
# S3 endpoint to be used. This parameter is optional
# and has a higher precedence over endpoint derived
# via S3 region.
s3EndPoint=
connectionTimeout=120000
socketTimeout=120000
maxConnections=20
maxErrorRetry=10
# maximum concurrent threads to write to S3.
writeThreads=10
Antes de arrancar de nuevo el tomcat vamos a necesitar un par de bibliotecas de programación:
  • jackrabbit-aws-ext
  • aws-java-sdk
Una vez descargadas, las copiamos en /usr/local/tomcat7/webapp/jackrabbit/WEB-INF/lib y volvemos a arrancar el tomcat. Si todo ha ido bien, tu jackrabbit utilizará el bucket como almacenamiento. Enlaces: Apache Jackrabbit API JCR

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Artículos

  • junio 2022
  • mayo 2022
  • abril 2022
  • marzo 2022
  • febrero 2022
  • enero 2022
  • diciembre 2021
  • noviembre 2021
  • octubre 2021
  • septiembre 2021
  • agosto 2021
  • julio 2021
  • junio 2021
  • mayo 2021
  • abril 2021
  • marzo 2021
  • febrero 2021
  • enero 2021
  • diciembre 2020
  • noviembre 2020
  • octubre 2020
  • septiembre 2020
  • agosto 2020
  • julio 2020
  • junio 2020
  • mayo 2020
  • abril 2020
  • marzo 2020
  • febrero 2020
  • enero 2020
  • diciembre 2019
  • noviembre 2019
  • octubre 2019
  • septiembre 2019
  • agosto 2019
  • julio 2019
  • junio 2019
  • mayo 2019
  • abril 2019
  • marzo 2019
  • febrero 2019
  • enero 2019
  • noviembre 2018
  • octubre 2018
  • julio 2016
  • mayo 2016
  • abril 2016
  • agosto 2015
  • febrero 2014
  • junio 2013
  • febrero 2013
  • noviembre 2012
  • octubre 2012
  • septiembre 2012
  • abril 2012
  • enero 2012

Categorías

  • Cómo
  • Consejos
  • Hacks
  • Sin sentido
  • Tutorial

Etiquetas

apache Apexcharts API aws chartjs comodo ec2 firefox freebsd freenas Google gpg guacamole Hangouts java Javascript kubuntu Laravel last.fm Linux Malware mysql nas4free nginx partición disco php plesk python react Realtek Seguridad sftp sonata-admin spring spring-boot ssh ssl symfony symfony2 symfony4 thymeleaf ubuntu vnc windows xfs

Entradas recientes

  • OsTicket y nginx
  • Extracción del texto de un pdf creado a partir de una imagen
  • Confirmación antes de apagar
  • cURL error 60: SSL certificate problem: unable to get local issuer certificate
  • Oracle JDK 7 is NOT installed.

Comentarios recientes

  • Marcos en Deobbing flash
  • Irosales en Deobbing flash
  • Instalación certificado SSL de un vendedor – Marcos Peña en Instala un certificado SSL en tres pasos
  • gerMdz en Cómo instalar un certificado letsencrypt para un sitio gestionado por Cloudflare
  • Jose Olalla en Cómo ampliar el espacio en disco en 1and1

Archivos

  • junio 2022
  • mayo 2022
  • abril 2022
  • marzo 2022
  • febrero 2022
  • enero 2022
  • diciembre 2021
  • noviembre 2021
  • octubre 2021
  • septiembre 2021
  • agosto 2021
  • julio 2021
  • junio 2021
  • mayo 2021
  • abril 2021
  • marzo 2021
  • febrero 2021
  • enero 2021
  • diciembre 2020
  • noviembre 2020
  • octubre 2020
  • septiembre 2020
  • agosto 2020
  • julio 2020
  • junio 2020
  • mayo 2020
  • abril 2020
  • marzo 2020
  • febrero 2020
  • enero 2020
  • diciembre 2019
  • noviembre 2019
  • octubre 2019
  • septiembre 2019
  • agosto 2019
  • julio 2019
  • junio 2019
  • mayo 2019
  • abril 2019
  • marzo 2019
  • febrero 2019
  • enero 2019
  • noviembre 2018
  • octubre 2018
  • julio 2016
  • mayo 2016
  • abril 2016
  • agosto 2015
  • febrero 2014
  • junio 2013
  • febrero 2013
  • noviembre 2012
  • octubre 2012
  • septiembre 2012
  • abril 2012
  • enero 2012

Categorías

  • Cómo
  • Consejos
  • Hacks
  • Sin sentido
  • Tutorial

Meta

  • Acceder
  • Feed de entradas
  • Feed de comentarios
  • WordPress.org
© 2022 Marcos Peña | Funciona con Minimalist Blog Tema para WordPress