martes, 14 de junio de 2016

Instalar Oracle SOA Suite 12c Quick Start en Ubuntu 14.04+


Muchas veces por distintas razones y en casi la totalidad de los casos, Oracle Fusion Middleware (conocida también por SOA Suite) es instalado en sistemas de tipo UNIX con distintos fines... muy pocas veces se lo instala en GNU/Linux para desarrollar aplicaciones SOA. Todo el contenido presente en este documento es producto del aprendizaje lo que conlleva horas y horas de pruebas y numerosos dolores de cabezas.

Esta guía esta pensada para ser aplicada en sistemas operativos Ubuntu 14.04 o superiores... para explicar todos los pasos y ejemplos se hará uso de la ultima LTS de Ubuntu al momento de escribir este artículo, usaré Ubuntu 16.04 LTS.


Instalando SOA 12c quick start en Ubuntu 16.04

Antes de instalar la SOA Suite debemos tener una PC que cuente con los siguientes requisitos:

Recurso Valores mínimos - Recomendados
CPUIntel Core 2 - Intel Core i5 o equivalente
Memoria RAM3 GB en sistemas de 32-bit
4 GB en sistemas de 64-bit
Pantallapor lo menos una resolución de 1024 x 768
Disco Duro5 GB


1. Instalar Oracle Java JDK

Es importante que contemos con el JDK de Oracle ya que el OpenJDK que viene en los repositorios de Ubuntu no será compatible con la SOA Suite, para esto, se recomienda seguir el siguiente articulo al pie de la letra:

Es necesario instalar una versión del JDK de Oracle en específico según la versión de la SOA Suite que se vaya a instalar. Para nuestro caso:

SOA Suite 12.2.1.0.0 -> JDK 1.8.0 update 51 o superior 
(recomiendo la ultima update disponible de la JDK 8)

2. Instalar SOA 12c Quick Start

Al momento de escribir estas líneas Oracle no proporciona un paquete de instalación para Ubuntu sin embargo se hará la instalación de la versión mas reciente de la SOA Suite, la versión 12c (12.2.1.0), que si bien no está certificada para Ubuntu con unos pasos previos usando la versión genérica bastará.

2. 1. Abra la siguiente URL en su navegador web:
(Si la URL no funciona, simplemente buscar en Google "SOA Suite quick start download")


2. 2. Aceptar los acuerdos de licencia presionando el botón "Accept License Agreement".

2. 3. Seleccionar la versión "All Platforms - Generic 64bit JVM" y descargar los dos paquetes .ZIP que conforman el instalador.

2. 4. La página web mostrara un cuadro de login para que introduzca sus credenciales (simplemente crear una cuenta en oracle si no se tiene una).

2. 5. Seleccionar Guardar archivo para descargar el archivo en la carpeta Descargas



2. 6. Una vez descargado los archivos, presione Ctrl + Alt + T y abra una terminal, dirigirse a la carpeta Descargas y descomprimir los dos archivos .ZIP con los siguientes comandos:

unzip fmw_12.2.1.0.0_soaqs_Disk1_1of2.zip
unzip fmw_12.2.1.0.0_soaqs_Disk1_2of2.zip


Esto genera 2 archivos .jar correspondientes uno a cada ZIP.

2. 7. Antes que nada hay que instalar las dependencias necesarias, crear enlaces simbólicos y carpetas para que el instalador de la SOA Suite reconozca todo lo que necesita para ejecutarse bien en Ubuntu que no está oficialmente certificada por Oracle.  Para ello corremos los siguiente comandos en la terminal:

sudo apt-get install coreutils rpm gawk
sudo ln -s /usr/bin/awk /bin/awk
sudo ln -s /usr/bin/rpm /bin/rpm
sudo ln -s /usr/bin/basename /bin/basename
mkdir -p /home/ubuntu/.gnome/apps
ln -s /home/ubuntu/.gnome/apps /home/ubuntu/.gnome-desktop
echo 'Red Hat Linux release 7' | sudo tee -a /etc/redhat-release


Prestar atención a los paths incluidos en los comandos, ya que  /home/ubuntu  es la carpeta home para el usuario de ejemplo... y que en tu caso, será distinta, como por ejemplo /home/tu-usuario  . Usar los paths correspondientes a tu usuario.

Basicamente el instalador de la SOA Suite como soporta RedHat (entre otras) lo que se hace con los comandos anteriores, es crear enlaces simbólicos a los ejecutables que dicho instalador busca a la hora de ejecutarse. 

Además, el acceso directo al ejecutable del JDeveloper se guarda en una carpeta ya obsoleta para Ubuntu 14.04 en adelante (.gnome-desktop). Entonces, lo que hacemos es restaurar dicha carpeta creando un enlace simbólico a la carpeta que en realidad usa Ubuntu (.gnome/apps) que puede que no esté todavía creada si poseemos una instalación limpia de Ubuntu.

Finalmente se crea un archivo de release para simular que Ubuntu sea visto como RedHat por el instalador de la SOA Suite. Para completar este "truco" continuar con el siguiente paso. 

2. 8. También es necesario modificar el archivo /etc/lsb-release para completar el truco y simular que se trata de RedHat, para ello... en la terminal corremos el siguiente comando:

sudo gedit /etc/lsb-release

y editamos el archivo... solo cambiamos el numero de versión de la variable DISTRIB_RELEASE, que para el caso de Ubuntu 16.04 justamente esa variable tiene el valor 16.04 y tendremos que remplazarlo por el valor 7 como se muestra en la imagen:

2. 9. Ahora creamos una carpeta que contendrá toda la instalación de Oracle Fusion Middleware.

Vamos a aclarar un detalle aquí. Como la instalación de la base de datos Oracle crea una carpeta en Raiz llamada u01 nosotros vamos a crear una carpeta en raíz llamada u02 y volcaremos todo el contenido de la SOA Suite ahí dentro.

Para ello, corremos los siguientes comandos en la terminal:

sudo mkdir /u02
sudo chmod 755 /u02
sudo chown ubuntu:ubuntu /u02

Prestar atención al cambio de owner en el ultimo comando, ya que ubuntu es el usuario para el ejemplo, quedando ubuntu:ubuntu pero en tu caso será diferente.... remplazar ubuntu:ubuntu por tu-usuario:tu-usuario

y finalmente fijamos un tamaño a la carpeta temporal del sistema /tmp con el fin de soportar los valores recomendados por el instalador de la SOA Suite. Para esto, corremos el siguiente comando en una terminal:

sudo mount -t tmpfs -o size=4096M,mode=1777  overflow /tmp


2. 10. Hasta que llegó la hora de ejecutar el instalador... para esto, nos aseguramos que en la terminal estamos en la carpeta Descargas con los .ZIP descomprimidos y los .JAR del instalador en su lugar. Y como vieron en la imagen anterior... ejecutamos el comando:

/usr/java/jdk1.8.0_91/bin/java -jar /home/tu-usuario/Downloads/fmw_12.2.1.0.0_soa_quickstart.jar

donde deberás usar el path a tu versión del JDK y el path de tu usuario a la carpeta Descargas donde se ubican los archivos .jar del instalador de la SOA Suite.

2. 11. Una vez que el archivo .jar del instalador de la SOA Suite se haya descomprimido en la carpeta temporal del sistema. Abrirá la siguiente ventana:


Acá debemos remplazar en primer lugar el Iventory Directory (que ni bien al iniciar usa por defecto el path /home/tu-usuario/oraInventory ) remplazar el path por /u02/oraInventory  . Corroborar que el grupo del sistema operativo es tu-usuario (ubuntu en este ejemplo) y damos clic en OK para continuar con la instalación.



2. 12. Aparecerá un splash como muestra la imagen anterior que cuando termina de cargar lanza la primera ventana del instalador de la SOA Suite.


Simplemente es una pantalla de bienvenida, por ende damos clic en "Next >".

2. 13. En la siguiente ventana nos pregunta acerca de las actualizaciones, donde seleccionamos que Omita las actualizaciones automáticas, primero porque como anteriormente mencionamos que Ubuntu no está certificada por Oracle por lo que podría romper la instalación de la SOA Suite y segundo porque generalmente se trabaja con una versión específica de la SOA Suite. 


Hacemos clic en "Next >" para continuar con la instalación.

2. 14. En la siguiente ventana nos pregunta acerca de en donde queremos instalar todo el producto (o dicho de otra manera, cual será nuestra ORACLE_HOME para este producto), por defecto nos selecciona el path  /home/tu-usuario/Oracle/Middleware/Oracle_Home  donde  remplazamos a mano nuestra home por la carpeta /u02  que creamos anteriormente... quedando: /u02/Oracle/Middleware/Oracle_Home


Luego hacemos clic en "Next >" para continuar con la instalación.

2. 15. El instalador comprobará si nuestro Ubuntu cumple con los requisitos... generalmente en esta parte de la instalación suele arrojar WARNINGS porque no encuentra ninguna distribución GNU/Linux soportada. Pero como hicimos un "truco" en los pasos anteriores, darán OK todas las pruebas.


Recordar que según que versión de la SOA Suite se proceda a instalar, será la versión del JDK de Oracle que necesitemos instalar previamente, como ya se explicó.

Clic "Next >" para continuar con la instalación.

2. 16. Comprobamos que todo es correcto, y en este ultima ventana del instalador nos muestra las cosas que instalará y en donde las instalará.


Para comenzar con la instalación propiamente dicha, hacemos clic en "Install" y esperamos a que termine todas las operaciones necesarias.



2. 17. Una vez concluida la instalación damos clic en "Next >"


2. 18. En esta ultima ventana del instalador debemos Desmarcar la opción de Iniciar JDeveloper al finalizar el proceso y hacer clic en "Finish" para terminar ya la instalación de la SOA Suite.



Solucionando problemas

3. No hay icono de donde ejecutar JDeveloper

Por la misma razón que la SOA Suite no está certificada para Ubuntu, es por la que debemos realizar unos pequeños ajustes TOTALMENTE NECESARIOS para garantizar el correcto funcionamiento de JDeveloper 12c.

3. 1. Lo primero es añadir un acceso directo al ejecutable de JDeveloper 12c en el escritorio para poder ejecutarlo. Para ello, en la terminal corremos los siguientes comandos:

cd /u02/Oracle/Middleware/Oracle_Home/jdeveloper/jdev/bin/
gedit addjdevtodesktop


De esta forma se nos abre un archivo que deberemos editar en dos sectores diferentes... precisamente las lineas 18 a 19 y en la línea 52. Lo primero es que en las líneas 18 y 19 aparece "Oracle JDeveloper 11g Release 1" por ende ponemos el nombre correcto que es "Oracle JDeveloper 12c" en ambas líneas (18 y 19).
Antes de cerrar el archivo, editamos la linea 52 del archivo donde dice "Icon=......coffee.png" cambiar a "Icon=......coffee12c.png" como se muestra en la siguiente imagen:


Guardamos el archivo y cerramos gedit.

3. 2. Desde la terminal obtenemos el nuevo icono de JDeveloper 12c, para ello corremos el siguiente comando:

wget https://www.dropbox.com/s/zf9hj2v3k0fiprc/coffee12c.png


3. 3. Para añadir finalmente el acceso directo al ejecutable en el escritorio.... desde la terminal y estando en la ruta /u02/Oracle/Middleware/Oracle_Home/jdeveloper/jdev/bin/ corremos el comando:

./addjdevtodesktop


3. 4. Por ultimo restauramos el archivo que tocamos en pasos anteriores sobre el release de Ubuntu dejándolo como estaba. Para ello desde la terminal ejecutamos el comando:

sudo gedit /etc/lsb-release


Dejamos la veriable DISTRIB_RELEASE con el valor que estaba antes... en mi caso es 16.04, si no recuerdan cual eran, generalmente se logra ver en la variable DISTRIB_DESCRIPTION.

Guardamos el archivo y cerramos gedit.

3. 5. Nos disponemos a abrir JDeveloper 12c desde el icono ubicado en el escritorio y una vez que se esté ejecutando aparecerá un icono en el lanzador de Ubuntu que podremos Mantener en el Lanzador si así lo deseamos.


3. 6. Puede que JDeveloper nos pregunte si deseamos importar configuraciones desde una versión previa... se recomienda NO importar las configuraciones de versiones anteriores, por ende hacemos clic en NO.


Finalmente tenemos ya corriendo sobre Ubuntu la ultima versión de JDeveloper con todas las herramientas de Oracle Fusion Middleware instaladas.



4. Restaurar Maven en OSB 12.2.1

En esta ultima versión de JDeveloper, la funcionalidad de Maven esta estropeada lo que hace que el plugin de maven para OSB quede inutilizable recién instalada la SOA Suite. Oracle es consciente de este problema y están trabajando para crear un parche para esto. Mientras tanto, los usuarios pueden evitar el problema con algunos cambios simples. Este blog documenta esos cambios.

4.1 Reparando el POM com.oracle.servicebus:client

El primer cambio que necesitamos hacer es editar el POM com.oracle.servicebus:client. Este POM puede encontrarse en ${ORACLE_HOME}/osb/plugins/maven/com/oracle/servicebus/client/12.2.1/client-12.2.1.pom. Abrir este POM con un editor de textos y realizar los siguientes cambios:

  1. En la <dependency> de weblogic-server-pom cambiar la versión de “LATEST” a “[12.2.1,12.2.2)” (sin incluir las comillas dobles).
  2. En la <dependency> de com-bea-core-xml-xmlbeans cambiar la versión de “LATEST” a “[12.2.1,12.2.2)” (sin incluir las comillas dobles).
  3. En la <dependency> de com-bea-core-xml-xmlbeans cambiar el valor del elemento <artifactId>  de “com-bea-core-xml-xmlbeans” a “com.bea.core.xml.xmlbeans” (sin incluir las comillas dobles).


Después de realizar los cambios, debería verse similar a lo siguiente:
...
<dependencies>
    <dependency>
        <groupId>com.oracle.weblogic</groupId>
        <artifactId>weblogic-server-pom</artifactId>
        <version>[12.2.1,12.2.2)</version>
        <type>pom</type>
    </dependency>
    <dependency>
        <groupId>com.oracle.weblogic</groupId>
        <artifactId>com.bea.core.xml.xmlbeans</artifactId>
        <version>[12.2.1,12.2.2)</version>
    </dependency>
    <dependency>
        <groupId>com.oracle.osb.common</groupId>
        <artifactId>oracle.servicebus.common</artifactId>
        <version>[12.2.1,12.2.2)</version>
    </dependency>
    ...
4. 2. Reparando el POM padre com.oracle.servicebus:sbar-project-common

El siguiente cambio que debemos realizar es editar el POM com.oracle.servicebus:sbar-project-common. Este POM se ubica en ${ORACLE_HOME}/osb/plugins/maven/com/oracle/servicebus/sbar-project-common/12.2.1/sbar-project-common-12.2.1.pom. Abrir este POM con un editor de textos y realizar los siguientes cambios:

  1. Cambiar el valor de la sección <version> del elemento <parent> de  “12.1.4-0-0” a “12.2.1-0-0” (sin incluir las comillas dobles).


Después de realizar los cambios, debería verse similar a lo siguiente:
... 
<parent>
    <groupId>com.oracle.maven</groupId>
    <artifactId>oracle-common</artifactId>
    <version>12.2.1-0-0</version>
</parent>
...

4. 3. Reparando el POM padre com.oracle.servicebus:sbar-system-common

El siguiente cambio que debemos realizar es editar el POM com.oracle.servicebus:sbar-system-common. Este POM se ubica en ${ORACLE_HOME}/osb/plugins/maven/com/oracle/servicebus/sbar-system-common/12.2.1/sbar-system-common-12.2.1.pom. Abrir este POM con un editor de textos y realizar los siguientes cambios:

  1. Cambiar el valor de la sección <version> del elemento <parent> de  “12.1.4-0-0” a “12.2.1-0-0” (sin incluir las comillas dobles).


Después de realizar los cambios, debería verse similar a lo siguiente:
... 
<parent>
    <groupId>com.oracle.maven</groupId>
    <artifactId>oracle-common</artifactId>
    <version>12.2.1-0-0</version>
</parent>
...
4. 4. Recargando Maven desde JDeveloper

Después de editar los archivos anteriores, debemos recargar maven desde JDeveloper... para ello, abrimos JDeveloper y una vez en él nos dirigimos a Herramientas -> Preferencias y seleccionamos Maven en la lista de la izquierda.


Una vez aquí hacemos clic en el botón "Cargar Extensión" como se muestra en la imagen. Luego JDeveloper comenzará a cargar varios complementos y al finalizar configuramos del siguiente modo:


Luego de esto, hacemos clic en OK y listo. JDeveloper correctamente configurado.


5. JDeveloper no inicia correctamente en Windows 10

Para ello, se recomienda leer el siguiente documento donde se explica a detalle como solventar este inconveniente:

No hay comentarios:

Publicar un comentario