Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

Guía de inicio

Red Hat JBoss Enterprise Application Platform 7.0

Para usar con Red Hat JBoss Enterprise Application Platform 6.3

Red Hat Customer Content Services

Resumen

Esta guía proporciona la información básica para ayudar a los usuarios a iniciar Red Hat JBoss Enterprise Application Platform 7.

Capítulo 1. Introducción

1.1. Acerca de Red Hat JBoss Enterprise Application Platform 7

Red Hat JBoss Enterprise Application Platform 7 (JBoss EAP) es una plataforma de middleware construida con estándares libres y en cumplimiento con la especificación de Java Enterprise Edition 7. Integra a WildFly Application Server 10 con mensajería, agrupamiento de alta disponibilidad y otras tecnologías.

JBoss EAP incluye una nueva estructura modular, la cual permite la habilitación de servicios solo cuando se requieran, mejorando así, la velocidad de arranque.

La consola administrativa y la interfaz de línea de comandos administrativa (CLI) hacen innecesaria la modificación de archivos de configuración XML y agregan la habilidad para utilizar scripts y automatizar tareas.

JBoss EAP proporciona dos modos operativos para instancias JBoss EAP: el servidor autónomo o el dominio administrado. El servidor autónomo representa la ejecución de JBoss EAP como una instancia de servidor sencilla. El modo operativo de dominio administrado permite la administración de múltiples instancias JBoss EAP desde un punto de control único.

Además, JBoss EAP 7 incluye APIs y marcos de trabajo de desarrollo para desarrollar rápidamente aplicaciones Java EE seguras y escalables.

1.2. Acerca de la Guía de inicio

Esta guía tiene como objeto hacer que usted pueda estar listo y ejecutando JBoss EAP tan rápido como sea posible. Cubre tareas administrativas tales como instalación básica, administración y configuración para JBoss EAP. Esta guía también ayuda a los desarrolladores a iniciar a escribir aplicaciones Java EE 7 mediante inicios rápidos JBoss EAP.

Para saber más, por favor consulte El paquete de documentación de JBoss EAP

Capítulo 2. Administración de JBoss EAP

2.1. Descargar e instalar JBoss EAP

Esta guía proporciona instrucciones básicas para descargar e instalar JBoss EAP mediante la instalación ZIP, la cual es independiente de la plataforma.

Para obtener más información, consulte la Guía de instalación, la cual incluye las instrucciones para instalar JBoss EAP con la ayuda del instalador gráfico o los métodos de instalación de paquetes RPM.

2.1.1. Prerrequisitos de instalación

Verificar que los siguientes prerrequisitos se hayan cumplido antes de instalar JBoss EAP:

Prerrequisitos comunes

Prerrequisitos de instalación ZIP

  • El usuario que ejecutará JBoss EAP tenga acceso de lectura y escritura para el directorio de instalación.
  • Que haya sido instalado el kit desarrollador de Java.
  • Para Hewlett-Packard HP-UX, se haya instalado una herramienta unzip.
  • Para Windows Server, se hayan establecido las variables de entorno JAVA_HOME y PATH.

2.1.2. Descargar JBoss EAP

El archivo de instalación JBoss EAP ZIP puede ser descargado desde el Portal del cliente de Red Hat.

  1. Ingrese al Portal del cliente de Red Hat.
  2. Haga clic en Downloads.
  3. En la lista Product Downloads, haga clic en Red Hat JBoss Enterprise Application Platform.
  4. Seleccione la versión deseada en el menú desplegable Versión.
  5. Busque la entrada Red Hat JBoss Enterprise Application Platform 7.x.x en la tabla y haga clic en Download.
  6. Guarde el archivo ZIP para el directorio deseado.

2.1.3. Instale JBoss EAP

Una vez haya sido descargado el archivo de instalación EAP ZIP, puede ser instalado al extraer el contenido del paquete.

  1. Si es necesario, desplace el archivo ZIP al servidor y el sitio donde JBoss EAP debe ser instalado.

    • El usuario que ejecutará JBoss EAP debe tener acceso de lectura y escritura para este directorio.
  2. Extraer el archivador.

    $ unzip jboss-eap-7.x.x.zip
    Nota

    Para Windows Server, haga clic derecho en el archivo ZIP y seleccione Extract All.

El directorio creado al extraer el archivador ZIP es el directorio del nivel superior para la instalación JBoss EAP. Este directorio se conoce como EAP_HOME.

2.2. Iniciar y detener JBoss EAP

2.2.1. Iniciar JBoss EAP

JBoss EAP se ejecuta en uno de estos dos modos operativos: como servidor autónomo o en un dominio administrado, y recibe soporte en varias plataformas: Red Hat Enterprise Linux, Windows Server, Oracle Solaris y Hewlett-Packard HP-UX.

El comando específico para iniciar JBoss EAP depende de la plataforma subyacente y el modo operativo deseado.

Inicie JBoss EAP como un servidor autónomo
$ EAP_HOME/bin/standalone.sh
Nota

Para Windows Server, use el script EAP_HOME\bin\standalone.bat.

Este script de arranque usa el archivo EAP_HOME/bin/standalone.conf (o standalone.conf.bat para Windows Server) para establecer algunas preferencias predeterminadas, tales como opciones MVJ. Puede personalizar estos parámetros en este archivo.

JBoss EAP usa el archivo de configuración standalone.xml de forma predeterminada, pero puede iniciarse mediante uno diferente. Para obtener más información sobre los archivos de configuración autónomos y la forma de usarlos, consulte la sección Configuración de servidor autónoma.

Para obtener un listado de todos los argumentos de scripts de arranque y sus propósitos, use el argumento --help o consulte la sección de argumentos o vea la sección Argumentos de tiempo de ejecución de servidor.

Inicie JBoss EAP en un dominio administrado

El controlador de dominio debe ser reiniciado antes de los servidores en los grupos de servidores en el dominio. Utilice este script primero para iniciar el controlador de dominio y luego para cada controlador de host.

$ EAP_HOME/bin/domain.sh
Nota

Para Windows Server, use el script EAP_HOME\bin\domain.bat.

El script de arranque usa el archivo EAP_HOME/bin/domain.conf (o domain.conf.bat para Windows Server) para establecer algunas preferencias predeterminadas, tales como opciones MVJ. Puede personalizar estos parámetros en este archivo.

JBoss EAP usa el archivo de configuración standalone.xml de forma predeterminada, pero puede iniciarse mediante uno diferente. Para obtener más información sobre los archivos de configuración autónomos y la forma de usarlos, consulte la sección Archivos de configuración de dominio administrado.

When setting up a managed domain, additional arguments will need to be passed into the startup script. For a complete listing of all available startup script arguments and their purposes, use the --help argument or see the Server Runtime Arguments section.

2.2.2. Parada de JBoss EAP

La forma de parar a JBoss EAP depende de la forma como se ha iniciado.

Pare una instancia interactiva de JBoss EAP

Presione Ctrl+C en la terminal donde se inició JBoss EAP.

Pare una instancia de segundo plano de JBoss EAP

Use la CLI administrativa para conectarse a la instancia que está en ejecución y apague el servidor.

  1. Lance la CLI administrativa.

    $ EAP_HOME/bin/jboss-cli.sh --connect
  2. Ejecute el comando shutdown.

    shutdown
Nota

Al ejecutar en un dominio administrado, especifique el nombre de host para apagar utilizando el argumento --host con el comando shutdown.

2.3. JBoss EAP Management

JBoss EAP usa una configuración simplificada con un archivo de configuración por servidor autónomo o dominio administrado. La configuración predeterminada para un servidor autónomo se almacena en el archivo EAP_HOME/standalone/configuration/standalone.xml y la configuración predeterminada para un dominio administrado se almacena en EAP_HOME/domain/configuration/domain.xml. Además, la configuración predeterminada para un controlador de host se almacena en el archivo EAP_HOME/domain/configuration/host.xml.

JBoss EAP puede ser configurado mediante la CLI administrativa o la consola administrativa basada en la web. Los cambios hechos mediante estas interfaces de administración persisten automáticamente y la API de administración sobrescribe los archivos de configuración XML. No se recomienda modificar los archivos de configuración XML de forma manual.

2.3.1. Usuarios administrativos

Debe crear por lo menos un usuario administrativo para usar la consola de administración. La comunicación basada en HTTP con JBoss EAP se considera de acceso remoto, incluso si el tráfico se origina en el host local. Si usted pretende acceder la consola de administración antes de agregar un usuario, recibirá un mensaje de error.

Según la forma como se instale JBoss EAP, puede no haber cuentas de usuario disponibles inicialmente para acceder a las interfaces de administración. Si JBoss EAP se instala mediante un instalador gráfico, entonces se creará una cuenta de usuario con los privilegios necesarios durante el proceso de instalación. De lo contrario, deberá crear por lo menos un usuario administrativo para acceder a las interfaces administrativas.

Esta guía cubre la administración de usuario sencillo para JBoss EAP mediante el script add-user, el cual es una herramienta para adicionar nuevos usuarios a los archivos de propiedades para autenticación lista para ser utilizada. Para obtener autenticación avanzada y opciones de autorización, tales como LDAP o Control de acceso basado en roles (RBAC), consulte la sección de la guía Core Management Authentication de JBoss EAP Security Architecture (Arquitectura de seguridad)

2.3.1.1. Cómo adicionar un usuario administrativo

  1. Ejecute el script de la herramienta add-user y siga las indicaciones.

    $ EAP_HOME/bin/add-user.sh
    Nota

    Para Windows Server, use el script EAP_HOME\bin\add-user.bat.

  2. Presione ENTER para seleccionar la opción predeterminada a para agregar un usuario de administrativo.

    Este usuario será agregado al ManagementRealm y será autorizado para realizar operaciones administrativas mediante la consola de administración o CLI administrativa. La otra selección (b) agrega un usuario a ApplicationRealm, el cual sirve para aplicaciones y no proporciona permisos particulares.

  3. Ingrese el nombre de usuario y la contraseña deseados. Se le solicitará confirmar la contraseña.

    JBoss EAP permite contraseñas débiles de forma predeterminada, pero emite una advertencia. Consulte la sección Restricciones de contraseña de la herramienta para agregar usuario de la Guía de configuración JBoss EAP para obtener más información sobre el cambio de esta conducta predeterminada.

  4. Ingrese una lista separada por comas de los grupos a los cuales pertenece el usuario. Si usted no desea que el usuario pertenezca a ninguno de ellos presione ENTER para dejarlo en blanco.
  5. Revise la información e ingrese yes para confirmar.
  6. Determine si este usuario representa una instancia remota de servidor JBoss EAP. Para un usuario administrativo básico, ingrese no.

    Un tipo de usuario que necesite ser agregado al ManagementRealm es un usuario que representa otra instancia de JBoss EAP, la cual debe se capaz de autenticarse para unirse como un miembro de un clúster. Si este es el caso, entonces la respuesta es yes para indicar que se le otorgará un valor secreto en hash que representa la contraseña, la cual deberá ser agregada a un archivo de configuración diferente.

Igualmente, puede crear usuarios de modo no interactivo pasando parámetros al script add-user. Este método no es recomendable en sistemas compartidos, ya que las contraseñas estarán visibles en archivos de registro y de historiales. Para obtener más información, consulte Cómo ejecutar la herramienta Agregar Usuario de forma no interactiva.

2.3.1.2. Cómo ejecutar la herramienta Agregar Usuario de forma no interactiva

Ejecute el script add-user de forma no interactiva pasando argumentos en la línea de comandos. Como mínimo, se debe proporcionar el nombre de usuario y la contraseña.

Aviso

Este enfoque no se recomienda en sistemas compartidos, ya que las contraseñas estarán visibles en archivos de registro y de historiales.

Cree un usuario que pertenezca a varios grupos

El siguiente comando agrega un usuario de administración (mgmtuser1) con los grupos guest y mgmtgroup.

$ EAP_HOME/bin/add-user.sh -u 'mgmtuser1' -p 'password1!' -g 'guest,mgmtgroup'
Especifique un archivo de propiedades alternativas

De forma predeterminada, la información de usuario y grupo creada mediante el script add-user se almacena en los archivos de propiedades localizadas en el directorio de configuración de servidor.

La información de usuario se almacena en los siguientes archivos de propiedades:

  • EAP_HOME/standalone/configuration/mgmt-users.properties
  • EAP_HOME/domain/configuration/mgmt-users.properties

La información de grupo es almacenada en los siguientes archivos de propiedades:

  • EAP_HOME/standalone/configuration/mgmt-groups.properties
  • EAP_HOME/domain/configuration/mgmt-groups.properties

Estos directorios predeterminados y nombres de archivos pueden sobrescribirse. El siguiente comando agrega un nuevo usuario especificando un nombre diferente y un sitio para los archivos de propiedades de usuario.

$ EAP_HOME/bin/add-user.sh -u 'mgmtuser2' -p 'password1!' -sc '/path/to/standaloneconfig/' -dc '/path/to/domainconfig/' -up 'newname.properties'

El nuevo usuario fue agregado a los archivos de propiedades localizados en /path/to/standaloneconfig/newname.properties y /path/to/domainconfig/newname.properties. Observe que estos archivos ya deben existir o de lo contrario, verá un error.

Para obtener un listado completo de los argumentos add-user disponibles y sus propósitos, use el argumento --help o consulte la sección Referencia de los argumentos de la herramienta add-user.

2.3.2. Interfaces de administración

2.3.2.1. CLI administrativa

La interfaz de la línea de comandos de administración (CLI) es una herramienta de administración de la línea de comandos para JBoss EAP.

Use la CLI administrativa para iniciar y detener servidores, implementar y desimplementar aplicaciones, configurar parámetros del sistema y realizar otras tareas administrativas. Las operaciones se pueden realizar en modo de lotes (batch) para permitir la ejecución de múltiples tareas como un grupo.

Varios comandos comunes de la terminal están disponibles, tales como ls, cd y pwd. La CLI administrativa también soporta el tabulador de completado.

Para obtener más información sobre el uso de la CLI administrativa, incluidos los comandos y operaciones, sintaxis y para ejecución en modo batch, consulte la Guía de CLI administrativa JBoss EAP.

Lance la CLI administrativa
$ EAP_HOME/bin/jboss-cli.sh
Nota

Para Windows Server, use el script EAP_HOME\bin\jboss-cli.bat.

Conéctese a un servidor en ejecución
Conéctese

O puede lanzar la CLI administrativa y conectarse en un paso mediante el comando EAP_HOME/bin/jboss-cli.sh --connect.

Mostrar ayuda

Use el siguiente comando para obtener ayuda general.

help

Use el siguiente comando para obtener ayuda sobre un comando específico.

deploy --help
Salga de la CLI administrativa
quit
Ver parámetros del sistema

El siguiente comando usa la operación read-attribute para desplegar si la fuente de datos de ejemplo está habilitada.

/subsystem=datasources/data-source=ExampleDS:read-attribute(name=enabled)
{
    "outcome" => "success",
    "result" => true
}

Al ejecutar en un dominio administrado, debe especificar el perfil que va a actualizar anteponiendo el comando con /profile=PROFILE_NAME.

/profile=default/subsystem=datasources/data-source=ExampleDS:read-attribute(name=enabled)
Actualice los parámetros del sistema

El siguiente comando usa la operación write-attribute para inhabilitar el ejemplo de fuente de datos.

/subsystem=datasources/data-source=ExampleDS:write-attribute(name=enabled,value=false)
Inicie los servidores

La CLI administrativa también puede iniciar y parar servidores cuando se ejecutan en un dominio administrado.

/host=HOST_NAME/server-config=server-one:start

2.3.2.2. Consola administrativa

La consola administrativa es una herramienta de administración basada en la red para JBoss EAP.

Use la consola administrativa para iniciar y detener servidores, implementar y desimplementar aplicaciones, afinar configuraciones del sistema y realizar modificaciones persistentes a la configuración del servidor. La consola de administración también tiene la habilidad de realizar tareas administrativas con notificaciones en vivo cuando algún cambio realizado por el usuario actual requiere que la instancia del servidor sea reiniciada o recargada.

En un dominio administrado, las instancias del servidor y los grupos del servidor en el mismo dominio, se pueden administrar centralmente desde la consola de administración del controlador de dominio.

Para una instancia JBoss EAP que se ejecute en un host local mediante el puerto de administración predeterminado, la consola administrativa, puede ser accedida a través de un navegador en http://localhost:9990/console/App.html. Deberá autenticar un usuario que tenga permisos para acceder a la consola administrativa.

La consola administrativa proporciona las siguientes pestañas para navegar y administrar su servidor autónomo JBoss EAP o el dominio administrado.

Carpeta personal
Aprenda cómo llevar a cabo varias tareas administrativas y de configuración. Haga el tour para familiarizarse con la consola administrativa de JBoss EAP.
Implementaciones
Agregue, quite y habilite implementaciones. En un dominio administrado, asigne las implementaciones a los grupos de servidores.
Configuración
Configure los subsistemas disponibles, los cuales proporcionan funcionalidades tales como servicios Web, mensajería o alta disponibilidad. En un dominio administrado, administre los perfiles que contienen diferentes configuraciones de subsistemas.
Tiempo de ejecución
Vea el tiempo de ejecución, tal como el estatus de servidor, el uso de JVM y los registros de servidor. En un domino administrado, administre sus hosts, los grupos de servidor y los servidores.
Control de Acceso
Asigne los roles a usuarios y grupos cuando utilice el control de acceso basado en roles.
Uso de parches
Aplique parches a sus instancias JBoss EAP
Nota

Realice un recorrido de su consola administrativa actualizada, haga clic en Tomar el tour el enlace en la página principal de la consola.

Para ver la información sobre los campos del formulario, haga clic en el enlace ¿Necesita ayuda?

Para ver el historial de mensajes de las acciones de configuración que haya realizado, haga clic en el enlace Messages en la parte superior derecha de la consola administrativa.

2.3.3. Archivos de configuración

2.3.3.1. Archivos de configuración de servidor autónomo

Los archivos de configuración autónomos se localizen en el directorio EAP_HOME/standalone/configuration. Existe un archivo para cada uno de los cuatro perfiles predefinidos (default, ha, full, full-ha).

Tabla 2.1. Archivos de configuración autónomos

Archivo de configuraciónPropósito

standalone.xml

Este archivo de configuración autónomo es la configuración predeterminada utilizada cuando inicia el servidor autónomo. Contiene toda la información sobre el servidor, incluidos subsistemas, redes, implementaciones, enlaces de sockets y otra información configurable. No proporciona los subsistemas necesarios para mensajería o alta disponibilidad.

standalone-ha.xml

Este archivo de configuración incluye todos los subsistemas predeterminados y agrega los subsistemas mod_cluster y JGroups para alta disponibilidad. No proporciona los subsistemas necesarios para mensajería.

standalone-full.xml

Este archivo de configuración autónomo incluye todos los subsistemas predeterminados y agrega los subsistemas de Mensajería e IIOP. No proporciona los subsistemas necesarios para alta disponibilidad

standalone-full-ha.xml

Este archivo de configuración incluye soporte para cada subsistema posible, incluidos los de mensajería y alta disponibilidad.

El servidor JBoss EAP utiliza de forma predeterminada el archivo standalone.xml. Para iniciar JBoss EAP con una configuración diferente, use el argumento --server-config . Por ejemplo:

$ EAP_HOME/bin/standalone.sh --server-config=standalone-full.xml

2.3.3.2. Archivos de configuración de dominio administrado

Los archivos de configuración de domino administrado ser localizan en el directorio EAP_HOME/domain/configuration.

Tabla 2.2. Archivos de configuración de dominio administrado

Archivo de configuraciónPropósito

domain.xml

Este es el archivo de configuración para un dominio administrado. Solamente el maestro de dominio lee este archivo. Este archivo contiene las configuraciones para otos los perfiles (ej.: default, ha, full, full-ha).

host.xml

Este archivo incluye información de configuración para host físico en un dominio administrado, tal como interfaces, enlaces de socket, el nombre del host y otra información específica de host. El archivo host.xml incluye todas las funcionalidades de host-master.xml y host-slave.xml, las cuales se describen a continuación:

host-master.xml

El archivo incluye únicamente la información de configuración necesaria para ejecutar un servidor como un maestro de dominio administrado (controlador de dominio)

host-slave.xml

Este archivo incluye únicamente la información necesaria para ejecutar un servidor como un servidor esclavo de dominio administrado.

El servidor JBoss EAP utiliza de forma predeterminada el archivo host.xml. Para iniciar JBoss EAP con una configuración diferente, use el argumento --host-config . Por ejemplo:

$ EAP_HOME/bin/domain.sh --host-config=host-master.xml

2.3.3.3. Hacer copia de seguridad de los datos de configuración

Con el fin de restaurar más adelante la configuración del servidor JBoss EAP, se debería hacer una copia de seguridad de los siguientes elementos:

  • EAP_HOME/standalone/configuration/

    • Haga una copia de seguridad de todo el directorio para guardar los datos de usuario, la configuración del servidor y los parámetros de ingreso para servidores autónomos.
  • EAP_HOME/domain/configuration/

    • Haga una copia de seguridad de todo el directorio para guardar el usuario y los datos de perfil, el dominio, la configuración de host y los parámetros para dominios administrados.
  • EAP_HOME/modules/system/layers/base/

    • Haga una copia de seguridad de los módulos personalizados.
  • EAP_HOME/welcome-content/

    • Haga una copia de seguridad del contenido de bienvenida.
  • EAP_HOME/bin/

    • Haga una copia de seguridad de los scripts personalizados o los archivos de configuración de arranque.

2.3.3.4. Instantáneas de archivos de configuración

Para ayudar en el mantenimiento y administración de la instancia del servidor, el servidor de aplicaciones crea una versión con marca de tiempo del arranque. Cualquier cambio de configuración adicional realizado por las operaciones de administración harán que automáticamente se realice una copia de seguridad del archivo original y que se preserve una copia de trabajo de la instancia para futura referencia o para deshacer los cambios. Además se pueden tomar instantáneas, que son copias en un momento preciso de la configuración de servidor actual. Estas instantáneas pueden guardadas y cargadas por un administrador.

Los siguientes ejemplos usan el archivo standalone.xml, pero el mismo proceso aplica a los archivos domain.xml y host.xml.

Tomar una instantánea

Use la CLI administrativa para tomar una instantánea de las configuraciones actuales.

:take-snapshot
{
    "outcome" => "success",
    "result" => "EAP_HOME/standalone/configuration/standalone_xml_history/snapshot/20151022-133109702standalone.xml"
}
Listar las instantáneas

Use la CLI administrativa para listar todas las instantáneas que han sido tomadas.

:list-snapshots
{
    "outcome" => "success",
    "result" => {
        "directory" => "EAP_HOME/standalone/configuration/standalone_xml_history/snapshot",
        "names" => [
            "20151022-133109702standalone.xml",
            "20151022-132715958standalone.xml"
        ]
    }
}
Borre la instantánea

Use la CLI administrativa para borrar una instantánea.

:delete-snapshot(name=20151022-133109702standalone.xml)
Inicie el servidor con una instantánea

El servidor puede ser iniciado mediante una instantánea o una versión guardada automáticamente de la configuración.

  1. Vaya al directorio EAP_HOME/standalone/configuration/standalone_xml_history e identifique la instantánea o el archivo de configuración guardado a cargar.
  2. Inicie el servidor y señale el archivo de configuración seleccionado. Pase la ruta relativa al directorio de configuración (ej., EAP_HOME/standalone/configuration).

    $ EAP_HOME/bin/standalone.sh --server-config=standalone_xml_history/snapshot/20151022-133109702standalone.xml
Nota

Al ejecutar en un dominio administrado, use el argumento --host-config en lugar de especificar el archivo de configuración.

2.3.3.5. Remplazo de propiedad

JBoss EAP le permite usar expresiones para definir propiedades remplazables en lugar de valores literales en la configuración. Las expresiones usan el formato ${PARAMETER:DEFAULT_VALUE}. Si se establece el parámetro, entonces se utilizará el valor del parámetro. De lo contrario, se utilizará el valor provisto.

Las fuentes que reciben soporte para resolver expresiones son propiedades de sistema, variables de entorno y 'vault'. Para las implementaciones únicamente, la fuente puede corresponder a las propiedades enumeradas en el archivo META-INF/jboss.properties que se encuentra en el archivador de implementación. Para tipos de implementación que soportan subimplementaciones, la resolución abarca todas las subimplementaciones si el archivo de propiedades está en la implementación externa. (p.ej., el EAR). Si el archivo de propiedades está en la subimplementación, entonces la resolución abarcará únicamente la subimplementación.

El ejemplo del archivo de configuración standalone.xml establece inet-address para la interfaz pública a 127.0.0.1 a menos que el parámetro jboss.bind.address sea definido.

<interface name="public">
    <inet-address value="${jboss.bind.address:127.0.0.1}"/>
</interface>

El parámetro jboss.bind.address puede ser definido en el inicio de EAP como un servidor autónomo, mediante el siguiente comando:

$ EAP_HOME/bin/standalone.sh -Djboss.bind.address=IP_ADDRESS
Expresiones anidadas

Las expresiones pueden ser anidadas, lo que permite el uso más avanzado de las expresiones en lugar de valores fijos. El formato de una expresión anidada es como el de una expresión normal, pero una expresión está incorporada en la otra. Por ejemplo:

${SYSTEM_VALUE_1${SYSTEM_VALUE_2}}

Las expresiones anidadas se evalúan de forma recursiva, por lo tanto la expresión inner es la primera evaluada, luego lo será la expresión outer. Las expresiones también pueden ser recursivas, cuando una expresión resuelve a otra expresión, que es luego resuelta. Las expresiones anidadas están permitidas en cualquier parte que las expresiones estén permitidas, a excepción de los comandos de la CLI administrativa.

Un ejemplo de uso de la expresión anidada es cuando la contraseña en una definición de fuente de datos está enmascarada. La configuración para una fuente de datos podría ser la siguiente línea:

<password>${VAULT::ds_ExampleDS::password::1}</password>

El valor de ds_ExampleDS podría ser remplazado por una propiedad de sistema (datasource_name), mediante una expresión anidada. La configuración para la fuente de datos podría en su lugar tener la siguiente línea:

<password>${VAULT::${datasource_name}::password::1}</password>

JBoss EAP primero debe evaluar la expresión ${datasource_name}, luego ingresarla a una expresión más grande y evaluar la expresión resultante. La ventaja de esta configuración es que el nombre de la fuente de datos se abstrae de la configuración corregida.

Remplazo de las propiedades basadas en el descriptor

La configuración de aplicaciones (p.ej., los parámetros de conexión de fuente de datos) típicamente varía entre desarrollo, prueba y entornos de producción. Algunas veces los scripts del sistema de construcción acomodan esta variación, ya que la especificación Java EE no contiene un método para exteriorizar estas configuraciones. Gracias a JBoss EAP, ahora puede usar el remplazo de propiedad basado en descriptores para administrar la configuración de modo externo.

El remplazo de la propiedad basada en descriptores, substituye las propiedades basadas en descriptores, lo que le permite suprimir los supuestos concernientes al entorno de la aplicación y la cadena de construcción. Se pueden especificar configuraciones específicas del entorno en los descriptores de implementación, en lugar de anotaciones o scripts del sistema de construcción. Usted puede proporcionar la configuración en archivos o como parámetros en la línea de comandos.

Existen varios indicadores en el subsistema EE que controlan si el remplazo de la propiedad se aplica.

El indicador jboss-descriptor-property-replacement controla el remplazo del descriptor específico JBoss y se habilita por defecto. Cuando está activado, las propiedades pueden ser remplazadas en los siguientes descriptores de implementación:

  • jboss-ejb3.xml
  • jboss-app.xml
  • jboss-web.xml
  • *-jms.xml
  • *-ds.xml

El siguiente comando de la CLI administrativa puede utilizarse para activar o desactivar el remplazo de propiedad en descriptores específicos JBoss:

/subsystem=ee:write-attribute(name="jboss-descriptor-property-replacement",value=VALUE)

El indicador de descriptor Java EE controlado por el indicador spec-descriptor-property-replacement está desactivado por defecto. Cuando se activa, las propiedades pueden ser remplazadas en los siguientes descriptores de implementación:

  • ejb-jar.xml
  • persistence.xml
  • application.xml
  • web.xml

El siguiente comando de la CLI administrativa puede utilizarse para activar o desactivar el remplazo de propiedad en descriptores Java EE:

/subsystem=ee:write-attribute(name="spec-descriptor-property-replacement",value=VALUE)

2.4. Configuración de red y puerto

2.4.1. Interfaces

JBoss EAP hace referencia a interfaces designadas a través de la configuración. Esta acción permite que la configuración haga referencia a las declaraciones de interfaz individuales con nombres lógicos, en lugar de requerir la información total de la interfaz en cada uso.

También facilita la configuración en un dominio administrado donde los detalles de la interfaz de red pueden variar a través de múltiples máquinas. Cada instancia de servidor puede corresponder a un grupo de nombre lógico.

Los archivos standalone.xml, domain.xml y host.xml incluyen declaraciones de interfaz. Hay varios nombres de interfaz preconfigurados, según la configuración predeterminada que se utilice. La interfaz management puede utilizarse para todos los componentes y servicios que requieren la capa de administración, incluido el punto de acceso de administración HTTP. La interfaz public sirve para todas las comunicaciones de red relacionadas con aplicaciones. La interfaz unsecure se utiliza para sockets IIOP en la configuración estándar. La interfaz private se utiliza para sockets JGroups en la configuración estándar.

2.4.1.1. Configuración de interfaz predeterminada

<interfaces>
  <interface name="management">
    <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
  </interface>
  <interface name="public">
    <inet-address value="${jboss.bind.address:127.0.0.1}"/>
  </interface>
  <interface name="private">
    <inet-address value="${jboss.bind.address.private:127.0.0.1}"/>
  </interface>
  <interface name="unsecure">
    <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
  </interface>
</interfaces>

JBoss EAP vincula por defecto estas interfaces a 127.0.0.1, aunque estos valores pueden sobrescribirse en tiempo de ejecución al configurar la propiedad adecuada. Por ejemplo, inet-address de la interfaz pública puede configurarse al iniciar JBoss EAP como un servidor autónomo con el siguiente comando.

$ EAP_HOME/bin/standalone.sh -Djboss.bind.address=IP_ADDRESS

De modo alternativo, puede usar la opción -b en la línea de comandos de arranque del servidor. Para obtener más información sobre las opciones de arranque del servidor, consulte Argumentos de tiempo de ejecución de servidor.

Importante

If you modify the default network interfaces or ports that JBoss EAP uses, you must also remember to change any scripts that use the modified interfaces or ports. These include JBoss EAP service scripts, as well as remembering to specify the correct interface and port when accessing the management console or management CLI.

2.4.1.2. Configuración de interfaces

Las interfaces de red se declaran al especificar el nombre lógico y los criterios de selección para la interfaz física. Los criterios de selección pueden hacer referencia a una dirección comodín o especificar un grupo de una o más características que una interfaz o dirección deben tener para ser una correspondencia válida. Para obtener un listado de todos los criterios de selección de interfaces disponibles, consulte la sección Atributos de interfaces.

Las interfaces pueden ser configuradas mediante la consola administrativa o la CLI administrativa. Abajo se presentan varios ejemplos de cómo agregar y actualizar interfaces. El comando de la CLI administrativa aparece primero, seguido de la configuración XML correspondiente.

Agregue una interfaz con un valor NIC

Agregue una nueva interfaz con un valor NIC de eth0.

/interface=external:add(nic=eth0)
<interface name="external">
   <nic name="eth0"/>
</interface>
Agregue la interfaz con varios valores condicionales

Agregue una nueva interfaz que coincida con una interfaz o dirección en la subred correcta si la interfaz está activa, soporta multidifusión y no es punto a punto.

/interface=default:add(subnet-match=192.168.0.0/16,up=true,multicast=true,not={point-to-point=true})
<interface name="default">
   <subnet-match value="192.168.0.0/16"/>
   <up/>
   <multicast/>
   <not>
      <point-to-point/>
   </not>
</interface>
Actualice el atributo de interfaz

Actualice el valor inet-address predeterminado de la interfaz public, manteniendo la propiedad jboss.bind.address para permitir que este valor sea configurado en tiempo de ejecución.

/interface=public:write-attribute(name=inet-address,value="${jboss.bind.address:192.168.0.0}")
<interface name="public">
    <inet-address value="${jboss.bind.address:192.168.0.0}"/>
</interface>
Agregue una interfaz a un servidor en un dominio administrado
/host=master/server-config=SERVER_NAME/interface=INTERFACE_NAME:add(inet-address=127.0.0.1)
<servers>
   <server name="SERVER_NAME" group="main-server-group">
      <interfaces>
         <interface name="INTERFACE_NAME">
            <inet-address value="127.0.0.1"/>
         </interface>
      </interfaces>
   </server>
</servers>

2.4.2. Enlaces de socket

Los enlaces de socket y los grupos de enlaces de sockets le permiten definir puertos de red y su relación con las interfaces de red requeridas para la configuración de JBoss 6 EAP. Un enlace de socket es una configuración designada para un socket. Un grupo de enlaces de sockets es una colección de declaraciones de enlaces de sockets agrupadas en un nombre lógico.

Esto permite a otras secciones de la configuración referirse a los enlaces de socket por su nombre lógico, en lugar de requerir todos los detalles de la configuración del socket en cada uso.

Las declaraciones para estas configuraciones designadas se encuentran en los archivos de configuración standalone.xml y domain.xml. Un servidor autónomo contiene únicamente un grupo de enlaces de socket, mientras que un dominio administrado puede contener múltiples grupos. Puede crear un grupo de enlaces de sockets para cada grupo de servidor en el dominio administrado o compartir un grupo de enlaces de sockets entre múltiples grupos de servidor.

Los puertos predeterminados utilizados por JBoss EAP dependen de los grupos de enlaces de sockets que se utilizan y de los requerimientos de su implementación individual.

2.4.2.1. Puertos de administración

Los puertos de administración se consolidaron en JBoss EAP 7. JBoss EAP 7 usa por defecto el puerto 9990 para administración nativa (CLI administrativa) y administración HTTP (consola administrativa basada en red). El puerto 9999, el cual se usaba como puerto de administración nativo en JBoss EAP 6, ya no se utiliza pero aún puede habilitarse si se desea.

Si HTTPS está habilitado para consola de administración, entonces se utiliza por defecto el puerto 9993.

2.4.2.2. Enlaces de sockets predeterminados

JBoss EAP se distribuye con un grupo de enlaces de socket para cada uno de los cuatro perfiles predefinidos (default, ha, full, full-ha).

Para obtener información más detallada sobre los enlaces de socket predeterminados, tales como puertos y descripciones predeterminados, consulte la sección Enlaces de sockets predeterminados.

Importante

If you modify the default network interfaces or ports that JBoss EAP uses, you must also remember to change any scripts that use the modified interfaces or ports. These include JBoss EAP service scripts, as well as remembering to specify the correct interface and port when accessing the management console or management CLI.

Servidor autónomo

Al ejecutar como servidor autónomo, únicamente el grupo de enlaces de socket se define por archivo de configuración. Cada archivo de configuración (standalone.xml, standalone-ha.xml, standalone-full.xml, standalone-full-ha.xml) define los enlaces de socket para las tecnologías utilizadas por su perfil correspondiente.

Por ejemplo, el archivo de configuración autónomo predeterminado (standalone.xml) especifica los enlaces de sockets:

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
    <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
    <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>
    <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
    <socket-binding name="http" port="${jboss.http.port:8080}"/>
    <socket-binding name="https" port="${jboss.https.port:8443}"/>
    <socket-binding name="txn-recovery-environment" port="4712"/>
    <socket-binding name="txn-status-manager" port="4713"/>
    <outbound-socket-binding name="mail-smtp">
        <remote-destination host="localhost" port="25"/>
    </outbound-socket-binding>
</socket-binding-group>
Dominio administrado

Durante la ejecución en un domino administrado, todos los grupos de enlaces de socket se definen en el archivo domain.xml. Hay cuatro grupos de enlaces de sockets predefinidos:

  • standard-sockets
  • ha-sockets
  • full-sockets
  • full-ha-sockets

Cada grupo de enlaces especifica enlaces de socket para tecnologías utilizadas por su perfil correspondiente. Por ejemplo, el grupo de enlaces de sockets full-ha-sockets define varios enlaces de sockets jgroups, los cuales son utilizados por el perfil full-ha para alta disponibilidad.

<socket-binding-groups>
    <socket-binding-group name="standard-sockets" default-interface="public">
        <!-- Needed for server groups using the 'default' profile  -->
        <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
        <socket-binding name="http" port="${jboss.http.port:8080}"/>
        <socket-binding name="https" port="${jboss.https.port:8443}"/>
        <socket-binding name="txn-recovery-environment" port="4712"/>
        <socket-binding name="txn-status-manager" port="4713"/>
        <outbound-socket-binding name="mail-smtp">
            <remote-destination host="localhost" port="25"/>
        </outbound-socket-binding>
    </socket-binding-group>
    <socket-binding-group name="ha-sockets" default-interface="public">
        <!-- Needed for server groups using the 'ha' profile  -->
    ...
    </socket-binding-group>
    <socket-binding-group name="full-sockets" default-interface="public">
        <!-- Needed for server groups using the 'full' profile  -->
    ...
    </socket-binding-group>
    <socket-binding-group name="full-ha-sockets" default-interface="public">
        <!-- Needed for server groups using the 'full-ha' profile  -->
        <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
        <socket-binding name="http" port="${jboss.http.port:8080}"/>
        <socket-binding name="https" port="${jboss.https.port:8443}"/>
        <socket-binding name="iiop" interface="unsecure" port="3528"/>
        <socket-binding name="iiop-ssl" interface="unsecure" port="3529"/>
        <socket-binding name="jgroups-mping" interface="private" port="0" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45700"/>
        <socket-binding name="jgroups-tcp" interface="private" port="7600"/>
        <socket-binding name="jgroups-tcp-fd" interface="private" port="57600"/>
        <socket-binding name="jgroups-udp" interface="private" port="55200" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45688"/>
        <socket-binding name="jgroups-udp-fd" interface="private" port="54200"/>
        <socket-binding name="modcluster" port="0" multicast-address="224.0.1.105" multicast-port="23364"/>
        <socket-binding name="txn-recovery-environment" port="4712"/>
        <socket-binding name="txn-status-manager" port="4713"/>
        <outbound-socket-binding name="mail-smtp">
            <remote-destination host="localhost" port="25"/>
        </outbound-socket-binding>
    </socket-binding-group>
</socket-binding-groups>
Nota

La configuración de socket para las interfaces de administración se define en el archivo host.xml del controlador de dominio

2.4.2.3. Configuración de enlaces de socket

Cuando defina un enlace de socket, configure los atributos port e interface, al igual que los parámetros multidifusión tales como multicast-address y multicast-port. Para obtener más información sobre los atributos de enlaces de sockets, consulte la sección Atributos de enlaces de sockets.

Los vínculos de sockets pueden ser configurados mediante la consola administrativa o CLI administrativa. Los siguientes pasos lo guían en la adición de un grupo de enlaces de sockets, en la adición de un enlace de sockets y en la configuración de los parámetros de enlaces de sockets mediante la CLI administrativa.

  1. Agregue un nuevo grupo de enlace de socket. Observe que este paso no puede realizarse cuando se está ejecutando como servidor autónomo.

    /socket-binding-group=new-sockets:add(default-interface=public)
  2. Agregue el enlace de socket.

    /socket-binding-group=new-sockets/socket-binding=new-socket-binding:add(port=1234)
  3. Cambie el enlace de socket para usar una interfaz diferente a la predeterminada y establecida por el grupo de enlace de socket.

    /socket-binding-group=new-sockets/socket-binding=new-socket-binding:write-attribute(name=interface,value=unsecure)

El siguiente ejemplo muestra cómo se vería la configuración XML después de completar los pasos anteriores.

<socket-binding-groups>
    ...
    <socket-binding-group name="new-sockets" default-interface="public">
        <socket-binding name="new-socket-binding" interface="unsecure" port="1234"/>
    </socket-binding-group>
</socket-binding-groups>

2.4.2.4. Port Offsets

Un 'port offset' es una diferencia numérica agregada a todos los valores de puertos especificados en el grupo de enlace de socket para dicho servidor. Permite al servidor heredar los valores de puerto definidos en su grupo de enlaces de sockets con una diferencia para garantizar que no entre en conflicto con ningún otro servidor en el mismo host. Por ejemplo, si el puerto HTTP del grupo de enlace de socket es 8080, y un servidor usa un 'Port Offset' de 100, entonces su puerto HTTP será 8180.

El ejemplo a continuación muestra la configuración de un 'Port Offset' de 250 para un servidor en un dominio administrado mediante la CLI administrativa.

/host=master/server-config=server-two/:write-attribute(name=socket-binding-port-offset,value=250)

El desfase de puerto de CLI también pueden utilizarse para servidores en un dominio administrado y para ejecutar servidores autónomos múltiples en el mismo host.

Puede pasar en un desfase de puerto cuando inicie el servidor autónomo mediante la propiedad jboss.socket.binding.port-offset.

$ EAP_HOME/bin/standalone.sh -Djboss.socket.binding.port-offset=100

2.4.3. Direcciones IPv6

Por defecto, JBoss EAP se configura para ejecutarse con direcciones IPv4. Los pasos a continuación muestran cómo configurar JBoss EAP para ejecutarse mediante direcciones IPv6.

Configurar la pila MVJ para direcciones IPv6

Actualice la configuración de arranque para preferir direcciones IPv6.

  1. Abra el archivo de configuración de arranque.

    • Al ejecutar como servidor autónomo, modifique el archivo EAP_HOME/bin/standalone.conf (o standalone.conf.batpara Windows Server).
    • Al ejecutar como servidor administrado, modifique el archivo EAP_HOME/bin/domain.conf (o domain.conf.bat para Windows Server).
  2. Establezca la propiedad java.net.preferIPv4Stack como false.

    -Djava.net.preferIPv4Stack=false
  3. Agregue la propiedad java.net.preferIPv6Addresses y defínala como true.

    -Djava.net.preferIPv6Addresses=true

El siguiente ejemplo muestra cómo se verían las opciones MVJ en el archivo de configuración de arranque después de hacer los cambios anteriores.

# Specify options to pass to the Java VM.
#
if [ "x$JAVA_OPTS" = "x" ]; then
   JAVA_OPTS="-Xms1303m -Xmx1303m -Djava.net.preferIPv4Stack=false"
   JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true"
   JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv6Addresses=true"
else
Actualice las declaraciones de interfaz para direcciones IPv6

Los valores de la interfaz predeterminada en la configuración pueden cambiarse en direcciones IPv6. Por ejemplo, el comando de la CLI administrativa de abajo, establece la interfaz management en la dirección loopback IPv6 (::1).

/interface=management:write-attribute(name=inet-address,value="${jboss.bind.address.management:[::1]}")

El siguiente ejemplo muestra cómo se vería la configuración XML después de ejecutar el comando anterior.

<interfaces>
    <interface name="management">
        <inet-address value="${jboss.bind.address.management:[::1]}"/>
    </interface>
    ....
</interfaces>

Capítulo 3. Desarrollo de aplicaciones mediante JBoss EAP

3.1. Visión General

Esta guía proporciona información sobre cómo iniciar las aplicaciones de desarrollo con la ayuda de Red Hat JBoss Developer Studio y los ejemplos de inicio de JBoss EAP 7.

Red Hat JBoss Developer Studio es un entorno de desarrollo integrado basado en Eclipse (IDE) que integra plugins de desarrollo de aplicaciones JBoss. JBoss Developer Studio puede ayudarlo a desarrollar la aplicación con la disponibilidad de asistentes específicos de JBoss y la capacidad para implementar aplicaciones para servidores JBoss EAP. Se proporcionan muchos ejemplos de código de inicio rápido JBoss EAP 7 para ayudar a los usuarios a iniciar la escritura de aplicaciones mediante diferentes tecnologías diferentes de Java EE 7.

Esta guía proporciona instrucciones básicas para JBoss Developer Studio. Vea la guía Install Red Hat JBoss Developer Studio para obtener instrucciones completas de instalación.

3.2. Configuración del entorno de desarrollo

3.2.1. Descargue JBoss Developer Studio

JBoss Developer Studio puede descargarse desde el Portal del cliente de Red Hat.

  1. Ingrese al Portal del cliente de Red Hat.
  2. Haga clic en Downloads.
  3. En la lista de Product Downloads, haga clic en Red Hat JBoss Developer Studio.
  4. Seleccione la versión deseada en el menú desplegable Versión.

    Nota

    Se recomienda usar JBoss Developer Studio versión 9.1 o posterior.

  5. Busque la entrada de Red Hat JBoss Developer Studio 9.x.x Installer with EAP en la tabla y haga clic en Download.
  6. Guarde el archivo JAR en el directorio deseado.

3.2.2. Instale JBoss Developer Studio

  1. Abra una terminal y navegue al directorio que contenga el archivo JAR descargado.
  2. Ejecute el siguiente comando para lanzar el programa de instalación GUI:

    $ java -jar jboss-devstudio-BUILD_VERSION-installer-standalone.jar
    Nota

    De modo alternativo, puede hacer doble clic en el archivo JAR para lanzar el programa de instalación.

  3. Haga clic en Next para iniciar el proceso de instalación.
  4. Seleccione I accept the terms of this license agreement y haga clic en Next.
  5. Ajuste la ruta de instalación y haga clic en Next.

    Nota

    Si la carpeta de la ruta de instalación no existe, entonces verá una ventana. Haga clic en OK para crear la carpeta.

  6. Seleccione una MVJ o deje la predeterminada seleccionada y haga clic en Next.
  7. Haga clic en Next cuando se le solicite seleccionar plataformas y servidores.
  8. Revise la información de instalación y haga clic en Next.
  9. Haga clic en Next cuando se complete el proceso de instalación.
  10. Configure los atajos de escritorio para JBoss Developer Studio, y haga clic en Next.
  11. Haga clic en Done.

3.2.3. Inicie JBoss Developer Studio

Para iniciar JBoss Developer Studio, haga doble clic en el atajo de escritorio creado durante la instalación o inicie desde la línea de comandos. Siga los pasos a continuación para iniciar JBoss Developer Studio con la línea de comandos.

  1. Abra la terminal y navegue al directorio de instalación JBoss Developer Studio.
  2. Ejecute el siguiente comando para iniciar JBoss Developer Studio:

    $ ./jbdevstudio
    Nota

    Para Windows Server, use el archivo jbdevstudio.bat.

3.2.4. Agregue JBoss EAP Server a JBoss Developer Studio

Estas instrucciones suponen que usted ya ha agregado los servidores JBoss EAP aJBoss Developer Studio. Use los siguientes pasos para agregar su servidor JBoss EAP mediante el asistente Define New Server.

  1. Abra la pestaña Servers.

    Nota

    Si la pestaña Servers no aparece, agréguela al panel al seleccionar WindowShow ViewServers.

  2. Haga clic en el enlace No hay ningún servidor disponible. Luego haga clic en el enlace para crear un servidor.

    Figura 3.1. Agregue un nuevo servidor

    The *Servers* tab when no servers are available.
  3. Expanda Red Hat JBoss Middleware y seleccione JBoss Enterprise Application Platform 7.0. Ingrese un nombre de servidor, por ejemplo, JBoss EAP 7.0, luego haga clic en Next.

    Figura 3.2. Defina un nuevo servidor

    The *Define a New Server* window.
  4. Cree un adaptador de servidor para administrar el inicio y parada del servidor. Guarde los predeterminados y haga clic en Next.

    Figura 3.3. Cree un nuevo adaptador de servidor

    The *Create a New Server Adapter* window.
  5. Ingrese un nombre, por ejemplo JBoss EAP 7.0 Runtime. Haga clic en Browse luego en Home Directory y navegue a su directorio de instalación JBoss EAP. Haga clic en Next.

    Figura 3.4. Agregar un nuevo entorno de ejecución de servidor

    The *JBoss Runtime* window.
    Nota

    Algunos inicios rápidos requieren que usted ejecute el servidor con un perfil diferente o argumentos adicionales. Por ejemplo, para desplegar un inicio rápido que requiera el perfil full, debe definir un nuevo servidor y especificar standalone-full.xml en el campo Archivo de configuración. Asegúrese de dar al nuevo servidor un nombre descriptivo.

  6. Configure los proyectos existentes para el nuevo servidor. Debido a que usted no tiene proyectos en este momento, haga clic en Terminar.

    Figura 3.5. Modificar recursos para el nuevo servidor

    The *Add and Remove Resources* window.

El servidor JBoss EAP 7.0 ahora se lista en la pestaña Servers.

Figura 3.6. Lista de servidores

The *Servers* tab when the `JBoss EAP 7.0` server is listed.

3.3. Cómo usar ejemplos de inicios rápidos

3.3.1. Acerca de Maven

Apache Maven es una herramienta de automatización de construcción distribuida , que se utiliza en el desarrollo de aplicaciones Java para crear, administrar y construir proyectos software. Maven usa archivos de configuración estándares llamados Modelo de objetos de proyecto (conocidos como POM, por sus siglas en inglés) para definir proyectos y administrar el proceso de construcción. Los POM describen las dependencias de componentes y módulos, el orden de construcción y los destinos para el empacado del proyecto resultante y la salida mediante un archivo XML. Esto asegura que el proyecto sea construido de una manera correcta y uniforme.

Nota

Los ejemplos de Quickstart incluidos en JBoss EAP son proyectos Maven.

Maven logra esto con la ayuda de un repositorio. Un repositorio almacena bibliotecas, complementos y otros artefactos de la construcción. El repositorio público predeterminado es el Maven 2 Central Repository, aunque los repositorios pueden ser privados e internos dentro de una compañía con una meta para compartir artefactos comunes entre los equipos de desarrollo. Los repositorios también están disponibles de terceras partes. Para obtener más información, consulte el proyecto Apache Maven y la guía de Introducción a repositorios.

JBoss EAP incluye el repositorio Maven, el cual contiene requerimientos que los desarrolladores de Java EE suelen emplear para construir aplicaciones en JBoss EAP.

Para obtener más información sobre cómo utilizar Maven con JBoss EAP, consulte la sección Uso de Maven con JBoss EAP en la Guía de desarrollo JBoss EAP .

3.3.2. Uso de Maven con Quickstarts

Los artefactos y dependencias necesarias para construir e implementar aplicaciones para JBoss EAP 6 se alojan en un repositorio público. Para comenzar por los inicios rápidos de JBoss EAP 7, ya no necesita configurar su archivo settings.xml de Maven para poder usar dicho repositorio durante la creación de los inicios rápidos. Los repositorios Maven ahora están configurados en los archivos POM del proyecto de inicios rápidos. Este método de configuración se proporciona para facilitarle el inicio con Quickstarts, sin embargo, no es recomendable para proyectos de producción debido a que puede demorar la construcción.

Red Hat JBoss Developer Studio incluye Maven, por lo tanto, no es necesario descargarlo o instalarlo por separado. Se recomienda usar una versión 9.1 o posterior de JBoss Developer Studio.

Si su plan es usar la línea de comandos Maven para construir e implementar sus aplicaciones, entonces primero descargue Maven desde el proyecto Apache Maven e instálelo siguiendo las instrucciones provistas en la documentación de Maven.

3.3.3. Descargar y ejecutar los Quickstarts

3.3.3.1. Descargar los Quickstarts

JBoss EAP viene junto con una serie completa de ejemplos de inicio rápido diseñados para ayudar a los usuarios a empezar a escribir aplicaciones usando la tecnología de Java EE 7. Los inicios rápidos pueden ser descargados desde el Portal del cliente de Red Hat.

  1. Ingrese al Portal del cliente de Red Hat.
  2. Haga clic en Downloads.
  3. En la lista Product Downloads, haga clic en Red Hat JBoss Enterprise Application Platform.
  4. Seleccione la versión deseada en el menú desplegable Versión.
  5. Busque la entrada Red Hat JBoss Enterprise Application Platform 7.0.0 Quickstarts en la tabla y haga clic en Download.
  6. Guarde el archivo ZIP para el directorio deseado.
  7. Extraer el archivo ZIP.

3.3.3.2. Ejecutar los Quickstarts en JBoss Developer Studio

Cuando haya cargado los inicios rápidos, se pueden importar al JBoss Developer Studio y desplegar para JBoss EAP.

Importe un Quickstart en JBoss Developer Studio

Cada inicio rápido se distribuye con un archivo POM (Modelo de objetos de proyectos) que contiene información de configuración y del proyecto. Al usar este archivo POM, puede importar fácilmente el inicio rápido en JBoss Developer Studio.

Importante

Si su carpeta de proyectos de inicios rápidos se localiza dentro del espacio de trabajo IDE cuando lo importa a JBoss Developer Studio, el IDE genera un nombre de proyecto inválido y el nombre de archivador WAR. Verifique si su carpeta de proyecto de inicios rápidos se localiza fuera del espacio de trabajo IDE antes de comenzar.

  1. Inicie JBoss Developer Studio.
  2. Seleccione FileImport.
  3. Seleccione MavenExisting Maven Projects, luego haga clic en Next.

    Figura 3.7. Importación de proyectos existentes de Maven

    The *Import* window.
  4. Navegue al directorio de inicio rápido (por ejemplo el inicio rápido helloworld), y haga clic en OK. La caja de listas Projects se generará con el archivo pom.xml del proyecto de inicio rápido seleccionado.

    Figura 3.8. Seleccione proyectos Maven

    The *Maven Projects* selection window.
  5. Haga clic en Finish.

Ejecute el inicio rápido helloworld

La ejecución del inicio rápido helloworld es una forma fácil de verificar que el servidor JBoss EAP está configurado y está ejecutándose correctamente.

  1. Si aún no ha definido un servidor, agregue el servidor JBoss EAP a JBoss Developer Studio
  2. Haga clic en el proyecto jboss-helloworld en la pestaña Project Explorer y seleccione Run AsRun on Server.

    Figura 3.9. Ejecutar como - Ejecutar en servidor

    The *Run As* -> *Run on Server* screen capture.
  3. Seleccione JBoss EAP 7.0 desde la lista de servidor y haga clic en Next.

    Figura 3.10. Ejecute en el servidor

    The *Run on Server* window.
  4. La siguiente pantalla jboss-helloworld muestra los recursos que están configurados en el servidor. Haga clic en Terminar para implementar el inicio rápido.

    Figura 3.11. Modifique los recursos configurados en el servidor

    The *Add and Remove Resources* window.
  5. Verifique los resultados

    • En la pestaña Server, el estatus del servidor JBoss EAP 7.0 cambia a Started.
    • La pestaña Console muestra mensajes que detallan el inicio del servidor JBoss EAP y la implementación de inicio rápido helloworld.

      WFLYUT0021: Registered web context: /jboss-helloworld
      WFLYSRV0010: Deployed "jboss-helloworld.war" (runtime-name : "jboss-helloworld.war")
    • La aplicación helloworld está disponible en http://localhost:8080/jboss-helloworld y muestra el texto Hello World!.

Ejecute el inicio rápido bean-validation

Algunos inicios rápidos tales como bean-validation, no proporcionan una capa de interfaz de usuario y en su lugar, proporcionan pruebas Arquillian para demostrar la funcionalidad.

  1. Importe el inicio rápido bean-validation a JBoss Developer Studio.
  2. En la pestaña Servers, haga clic derecho en el servidor y elija Start para iniciar el servidor JBoss EAP. Si usted no ve una pestaña Servers o no aún no ha definido un servidor, agregue el servidor JBoss EAP a Red Hat JBoss Developer Studio.
  3. Haga clic derecho en el proyecto jboss-bean-validation en la pestaña Project Explorer y seleccione Run AsMaven Build.
  4. Entre lo siguiente en el campo de entrada Goals y luego haga clic en Run.

    clean test -Parq-wildfly-remote

    Figura 3.12. Modifique la configuración

    The *Edit Configuration* window.
  5. Verifique los resultados

    La pestaña Console muestra los resultados de las pruebas Arquillian bean-validation:

    -------------------------------------------------------
     T E S T S
    -------------------------------------------------------
    Running org.jboss.as.quickstarts.bean_validation.test.MemberValidationTest
    Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.189 sec
    
    Results :
    
    Tests run: 5, Failures: 0, Errors: 0, Skipped: 0
    
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------

3.3.3.3. Ejecute los Quickstarts mediante la línea de comandos

Puede construir e implementar fácilmente los inicios rápidos desde la línea de comandos usando Maven. Si aún no tiene instalado Maven, por favor consulte el proyecto Apache Maven para descargarlo e instalarlo.

Se proporciona un archivo README.md en el directorio raíz de Quickstarts que contiene información general sobre los requisitos del sistema, configuración de Maven, adición de usuarios y ejecución de los inicios rápidos.

Cada inicio rápido contiene su propio archivo README.md que proporciona instrucciones específicas y los comandos Maven para ejecutarlo.

Ejecute el Quickstart helloworld desde la línea de comandos

  1. Revise el archivo README.md en el directorio raíz del inicio rápido helloworld .
  2. Inicie el servidor JBoss EAP

    $ EAP_HOME/bin/standalone.sh
  3. Navegue al directorio de inicio rápido helloworld.
  4. Construya e implemente los inicios rápidos mediante el comando de Maven provisto en el archivo README.md de Quickstarts .

    mvn clean install wildfly:deploy
  5. La aplicación helloworld está disponible en http://localhost:8080/jboss-helloworld y muestra el texto Hello World!.

Apéndice A. Material de referencia

A.1. Argumentos de tiempo de ejecución del servidor

El script de arranque del servidor de aplicaciones acepta argumentos y cambia en tiempo de ejecución. Esto permite al servidor iniciar en configuraciones alternativas a aquellas definidas en los archivos de configuración standalone.xml, domain.xml y host.xml

Las configuraciones alternativas podrían incluir el inicio del servidor con un set de enlace de socket alternativo o una configuración secundaria.

La lista de los parámetros disponibles puede accederse al pasar la opción de ayuda -h o --help en el inicio.

Tabla A.1. Opciones y argumentos de ejecución

Argumento u opción Modo operativoDescripción

--admin-only

Autónomo

Definir el tipo de ejecución del servidor como ADMIN_ONLY. Esto lo hará abrir las interfaces administrativas y aceptar las peticiones de administración, pero no podrá iniciar otros servicios de tiempo de ejecución ni aceptar peticiones de usuarios finales.

--admin-only

Dominio

Configure el tipo de ejecución del controlador host como ADMIN_ONLY para que abra interfaces administrativas y acepte peticiones de administración, pero no podrá iniciar servidores o, si este controlador host es el maestro del dominio, aceptar conexiones entrantes de controladores hosts esclavos.

-b=<value>, -b <value>

Autónomo, dominio

Establecer la propiedad del sistema como jboss.bind.address, lo cual sirve para configurar la dirección de enlace para la interfaz pública. Si no se especifica un valor, se predeterminará a 127.0.0.1. Por favor, consulte la entrada -b<interface>=<value> para configurar la dirección de enlace para otras interfaces.

-b<interface>=<value>

Autónomo, dominio

Establecer la propiedad del sistema jboss.bind.address.<interface> con el valor proporcionado. Por ejemplo, -bmanagement=IP_ADDRESS

--backup

Dominio

Mantenga una copia de la configuración de dominio persistente incluso si este host no es el controlador de dominios.

-c=<config>, -c <config>

Autónomo

Nombre del archivo de configuración del servidor a utilizar. El predeterminado es standalone.xml..

-c=<config>, -c <config>

Dominio

Nombre del archivo de configuración del servidor a utilizar. El predeterminado es domain.xml.

--cached-dc

Dominio

Si el host no es el controlador de dominios y no puede contactar el controlador de dominios en el arranque, inicie utilizando una copia en caché local de la configuración del dominio.

--debug [<port>]

Autónomo

Active el modo de depuración con un argumento opcional para especificar el puerto. Solo funciona si el script de lanzamiento lo soporta.

-D<name>[=<value>]

Autónomo, dominio

Establecer una propiedad del sistema.

--domain-config=<config>

Dominio

Nombre del archivo de configuración del servidor a utilizar. El predeterminado es domain.xml.

-h, --help

Autónomo, dominio

Presente el mensaje de ayuda y salga.

--host-config=<config>

Dominio

Nombre del archivo de configuración host a utilizar. El valor predeterminado es host.xml.

--interprocess-hc-address=<address>

Dominio

Dirección en la que el controlador host debe escuchar la comunicación del controlador de procesos.

--interprocess-hc-port=<port>

Dominio

Puerto en el que el controlador host debe escuchar la comunicación del controlador de procesos.

--master-address=<address>

Dominio

Establezca la propiedad del sistema jboss.domain.master.address con el valor dado. En una configuración predeterminada del controlador host esclavo, esto se utiliza para configurar la dirección del controlador host maestro.

--master-port=<port>

Dominio

Establezca la propiedad del sistema jboss.domain.master.port con el valor dado. En una configuración predeterminada del controlador host esclavo, esto se utiliza para configurar el puerto utilizado para la comunicación de administración nativa por parte del controlador host maestro.

--read-only-server-config=<config>

Autónomo

Nombre del archivo de configuración del servidor a utilizar. Difiere de --server-config y -c en que el archivo original nunca se sobrescribe.

--read-only-domain-config=<config>

Dominio

Nombre del archivo de configuración de dominio a utilizar. Difiere de --domain-config y -c en que el archivo inicial nunca se sobrescribe.

--read-only-host-config=<config>

Dominio

Nombre del archivo de configuración host a utilizar. Difiere de --host-config en que el archivo inicial nunca se sobrescribe.

-P=<url>, -P <url>, --properties=<url>

Autónomo, dominio

Cargar las propiedades del sistema desde la URL dada.

--pc-address=<address>

Dominio

Dirección en la que el controlador de procesos escucha la comunicación de los procesos que controla.

--pc-port=<port>

Dominio

Puerto en el que el controlador de procesos escucha la comunicación de los procesos que controla.

-S<name>[=<value>]

Autónomo

Establecer una propiedad de seguridad.

-secmgr

Autónomo, dominio

Ejecuta el servidor con un gestor de seguridad instalado.

--server-config=<config>

Autónomo

Nombre del archivo de configuración del servidor a utilizar. El predeterminado es standalone.xml..

-u=<value>, -u <value>

Autónomo, dominio

Establecer la propiedad del sistema jboss.default.multicast.address, el cual se utiliza en la configuración de la dirección multidifusión de los elementos de vinculación de sockets en los archivos de configuración. Si no se especifica ningún valor, se predeterminará a 230.0.0.4.

-v, -V, --version

Autónomo, dominio

Presenta la versión del servidor de aplicaciones y sale.

Aviso

Los archivos de configuración que se distribuyen con JBoss EAP se configuran para manejar la conducta de las opciones (p.ej., -b, -u). Si usted cambia los archivos de configuración para que no utilicen más la propiedad de sistemas controlada por la opción, entonces no afectará el comando de lanzamiento.

A.2. Argumentos de la herramienta Add-User

La siguiente tabla describe los argumentos disponibles para el script add-user.sh o add-user.bat, una herramienta para agregar nuevos usuarios al archivo de propiedades para una autenticación fuera de lo común.

Tabla A.2. Argumentos para el comando Add-User

Argumento de línea de comandosDescripción

-a

Este argumento se especifica para crear un usuario en el dominio de aplicaciones.Si se omite, se creará por defecto un usuario en el domino de administración.

-dc <value>

Este argumento especifica el directorio de configuración de dominio que contendrá los archivos de propiedades. Si es omitido, se predeterminará el directorio EAP_HOME/domain/configuration/.

-sc <value>

Este argumento especifica un directorio de configuración de servidor autónomo que contendrá los archivos de propiedades. Si es omitido, el directorio predeterminado será EAP_HOME/standalone/configuration/.

-up, --user-properties <value>

Este argumento especifica el nombre de un archivo alternativo de propiedades de usuario. Puede ser una ruta absoluta o puede ser un nombre de archivo utilizado junto con el argumento -sc or -dc que especifica el directorio de configuración alternativo.

-g, --group <value>

Una lista de grupos separada por comas para asignar este usuario.

-gp, --group-properties <value>

Este argumento especifica el nombre de un archivo alternativo de propiedades de grupo. Puede ser una ruta absoluta o puede ser un nombre de archivo utilizado junto con el argumento -sc o -dc que especifica el directorio de configuración alternativo.

-p, --password <value>

La contraseña del usuario

-u, --user <value>

El nombre del usuario.Únicamente son válidos los caracteres alfanuméricos y los siguientes símbolos:: ,./=@\.

-r, --realm <value>

El nombre del dominio utilizado para proteger las interfaces de administración. Si se omiten, el valor predeterminado será: ManagementRealm.

-s, --silent

Ejecute el script add-user sin salida a la consola.

-e, --enable

Habilite el usuario.

-d, --disable

Inhabilite el usuario

-cw, --confirm-warning

Confirma las advertencia automáticamente en modo interactivo.

-h, --help

Mostrar la información de uso para el script add-user.

A.3. Atributos de interfaz

Tabla A.3. Valores y atributos de la interfaz

Elemento interfazDescripción

any

Elemento vacío que indica que parte del criterio de la selección para una interfaz debe ser que cumpla con alguno de los criterios anidados, no necesariamente con todos.

any-address

Elemento vacío que indica que los sockets que hacen uso de esta interfaz se deben enlazar a una dirección comodín. Se utilizará la dirección comodín IPv6 (::) a menos que la propiedad del sistema java.net.preferIPv4Stack esté configurada como verdadera, en cuyo caso se utilizará la dirección comodín IPv4 (0.0.0.0). Si un socket está enlazado a una dirección IPv6 anylocal en una máquina con doble pila, podrá aceptar tráfico IPv6 e IPv4; si está enlazado a una dirección IPv4 anylocal (mapeada para IPv4), solamente podrá aceptar tráfico IPv4.

inet-address

Una dirección IP en IPv6 o IPv4 con una notación decimal con punto o un nombre de host que pueda ser resuelto como una dirección IP.

link-local-address

Elemento vacío que indica que parte del criterio de selección para una interfaz debe ser si una dirección está asociada con su enlace local.

loopback

Elemento vacío que indica que parte del criterio de selección para una interfaz debe ser si es una interfaz loopback.

loopback-address

Una dirección loopback que puede que no esté configurada en la interfaz loopback de la máquina. Difiere de tipo de inet-address, ya que el valor especificado será utilizado, incluso si no se puede encontrar un NIC que tenga la dirección IP asociada.

multicast

Elemento vacío que indica que parte del criterio de selección para una interfaz debe ser si soporta multicast o no.

nic

El nombre de una interfaz de red (por ejemplo, eth0, eth1, lo).

nic-match

Una expresión regular frente a la cual los nombres de las interfaces de red disponibles en la máquina pueden coincidir para encontrar una interfaz aceptable.

not

Elemento vacío que indica que parte del criterio de selección para una interfaz debe ser que no cumpla con ninguno de los criterios establecidos.

point-to-point

Elemento vacío que indica que parte del criterio de selección para una interfaz debe ser si es una interfaz punto-a-punto.

public-address

Elemento vacío que indica que parte del criterio de selección para una interfaz debe ser si tiene una dirección enrutable públicamente o no.

site-local-address

Elemento vacío que indica que parte del criterio de selección para una interfaz debe ser si una dirección está asociada con su sitio local.

subnet-match

Una dirección IP de red y el número de bits en el prefijo de red de la dirección , escrito en la slash notation (e.g. 192.168.0.0/16).

up

Elemento vacío que indica que parte del criterio de selección para una interfaz debe ser si está funcionando o no.

Virtual

Elemento vacío que indica que parte del criterio de selección para una interfaz debe ser si es una interfaz virtual o no.

A.4. Atributos de enlaces de sockets

Tabla A.4. Atributos de enlaces de sockets

AtributoDescripción

client-mappings

Especifica la asignación de clientes para este enlace de socket. Un cliente que se conecte a este socket debe usar la dirección de destino especificada en el mapa que corresponda con su interfaz de salida deseada. Así permite que las topologías de red avanzadas, usen la traducción de dirección de redes o tengan enlaces en múltiples interfaces de red para funcionar. Cada mapeo debe ser evaluado en orden declarado con la primera correspondencia utilizada para determinar el destino.

fixed-port

Si el valor del puerto debería permanecer fijo incluso cuando las diferencias numéricas son aplicadas a los demás sockets en el grupo de sockets.

interface

Nombre de la interfaz a la cual se debe vincular el socket, o para los sockets multidifusión, la interfaz en la cual se debe escuchar. Esta debe ser una de las interfaces declaradas. Si no está definido, se utilizará el valor del atributo default-interface del grupo de enlaces de sockets vinculado.

multicast-address

Dirección multidifusión en la cual el socket debería recibir el tráfico de multidifusión. Si no se especifica, el socket no será configurado para recibir multidifusión.

multicast-port

Puerto en el cual el socket debería recibir el tráfico de multidifusión. Debe estar configurado si 'multicast-address' está configurada.

Nombre

El nombre del socket. Los servicios que necesiten acceder a la información de configuración de socket la encontrarán por el nombre. Este atributo es obligatorio.

port

El número de puerto al cual el socket debería enlazarse. Observe que este valor puede sobrescribirse si los servidores aplican un port-offset para incrementar o disminuir todos los valores de puerto.

A.5. Enlaces de sockets predeterminados

Tabla A.5. Enlaces de sockets predeterminados

NamePuertoPuerto multicastDescripciónGrupos de enlaces de sockets

ajp

8009

 

Protocolo Apache JServ. Utilizado para balanceo de carga y clústers HTTP.

standard-sockets, ha-sockets, full-sockets, full-ha-sockets

http

8080

 

El puerto predeterminado para las aplicaciones web implementadas.

standard-sockets, ha-sockets, full-sockets, full-ha-sockets

https

8443

 

Conexión SSL encriptada entre las aplicaciones web implementadas y los clientes.

standard-sockets, ha-sockets, full-sockets, full-ha-sockets

iiop

3528

 

Servicios CORBA para transacciones JTS y otros servicios dependientes ORB.

full-sockets, full-ha-sockets

iiop-ssl

3529

 

Servicios CORBA SSL encriptados.

full-sockets, full-ha-sockets

jgroups-mping

 

45700

Multicast. Utilizado para descubrir la membresía inicial en un clúster HA.

ha-sockets, full-ha-sockets

jgroups-tcp

7600

 

Descubrimiento de pares unidifusión en clústeres HA mediante TCP.

ha-sockets, full-ha-sockets

jgroups-tcp-fd

57600

 

Utilizado para la detección de fallos HA a través de TCP.

ha-sockets, full-ha-sockets

jgroups-udp

55200

45688

Descubrimiento de pares multidifusión en clústeres HA mediante UDP.

ha-sockets, full-ha-sockets

jgroups-udp-fd

54200

 

Utilizado para la detección de fallos HA a través de UDP.

ha-sockets, full-ha-sockets

management-http

9990

 

Utilizado para comunicación HTTP con la capa de administración.

standard-sockets, ha-sockets, full-sockets, full-ha-sockets

management-https

9993

 

Utilizado para la comunicación HTTPS con la capa de administración.

standard-sockets, ha-sockets, full-sockets, full-ha-sockets

modcluster

 

23364

Puerto multicast para la comunicación entre JBoss EAP y el balanceador de carga HTTP.

ha-sockets, full-ha-sockets

txn-recovery-environment

4712

 

El administrador de recuperación de transacciones JTA.

standard-sockets, ha-sockets, full-sockets, full-ha-sockets

txn-status-manager

4713

 

El administrador de transacciones JTA / JTS.

standard-sockets, ha-sockets, full-sockets, full-ha-sockets





Revised on 2017-02-17 06:01:00 EST

Aviso Legal

Copyright © 2017 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.