Red Hat Training

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

Guia de Introdução

Red Hat JBoss Enterprise Application Platform 7.0

Para uso com o Red Hat JBoss Enterprise Application Platform 7

Red Hat Customer Content Services

Resumo

Este guia contém informações básicas de introdução ao Red Hat JBoss Enterprise Application Plataform 7.

Capítulo 1. Introdução

1.1. Sobre o Red Hat JBoss Enterprise Application Platform 7

O Red Hat JBoss Enterprise Application Platform 7 (JBoss EAP) é uma plataforma de middleware construída em padrões abertos e compatível com a especificação Java Enterprise Edition 7. Ele integra o WildFly Application Server 10 com um sistema de mensagens, clusterização de alta disponibilidade e outras tecnologias.

O JBoss EAP oferece uma estrutura modular que permite a habilitação de serviços apenas quando necessária, melhorando a velocidade de inicialização.

O Console de Gerenciamento e a CLI (Interface de Linha de Comando) de Gerenciamento tornam as edições dos arquivos de configuração XML desnecessárias e agregam a habilidade de utilizar script e automatizar tarefas.

O JBoss EAP fornece dois modos de operação para as instâncias do JBoss EAP: o servidor autônomo ou o domínio gerenciado. O modo de operação do servidor autônomo representa o JBoss EAP em execução como uma instância de servidor único. O modo de operação do domínio gerenciado permite o gerenciamento de múltiplas instâncias do JBoss EAP a partir de um ponto de controle único.

Além disso, o JBoss EAP inclui estruturas e APIs para o desenvolvimento rápido de aplicativos Java EE seguros e escaláveis.

1.2. Sobre o Guia de Introdução

Este guia tem como finalidade orientar os usuários na inicialização e execução rápida do JBoss EAP. Ele cobre tarefas administrativas como instalação, gerenciamento e configuração básica do JBoss EAP. Também auxilia os desenvolvedores a escrever aplicativos Java EE 7 usando os inícios rápidos do JBoss EAP.

Para saber mais, consulte a documentação completa do JBoss EAP .

Capítulo 2. Administração do JBoss EAP

2.1. Baixando e Instalando o JBoss EAP

Este guia fornece instruções básicas para o download e a instalação do JBoss EAP usando a instalação ZIP, que é independente de plataforma.

Consulte o Guia de Instalação para mais detalhes, incluindo instruções para a instalação do JBoss EAP usando o instalador gráfico ou os métodos de instalação do pacote RPM.

2.1.1. Pré-requisitos de Instalação

Verifique se os pré-requisitos a seguir são atendidos antes de instalar o JBoss EAP:

Pré-requisitos Comuns

Pré-requisitos da Instalação ZIP

  • O usuário que executará o JBoss EAP deve ter acesso de leitura e escrita para o diretório de instalação.
  • O kit de desenvolvimento Java desejado deve ter sido instalado.
  • Para o HP-UX da Hewlett-Packard, um utilitário de descompactação deve ter sido instalado.
  • Para o Windows Server, as variáveis de ambiente JAVA_HOME e PATH devem ter sido definidas.

2.1.2. Baixando o JBoss EAP

O arquivo ZIP de instalação do JBoss EAP deve ser baixado através do Portal do Cliente.

  1. Faça o login no Portal do Cliente Red Hat.
  2. Clique em Downloads.
  3. Na lista Downloads de Produtos, clique em Red Hat JBoss Enterprise Application Platform.
  4. Selecione a versão desejada no menu suspenso Versão.
  5. Encontre a entrada Red Hat JBoss Enterprise Application Platform 7.x.x na tabela e clique em Download.
  6. Salve o arquivo ZIP no diretório desejado.

2.1.3. Instalando o JBoss EAP

Depois que o arquivo ZIP de instalação do JBoss EAP foi baixado, ele pode ser instalado extraindo os conteúdos do pacote.

  1. Se necessário, mova o arquivo ZIP para o servidor e o local onde o JBoss EAP deve ser instalado.

    • O usuário que executará o JBoss EAP deve ter acesso de leitura e escrita para este diretório.
  2. Extraia o arquivo ZIP.

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

    Para o Windows Server, clique com o botão direito do mouse no arquivo ZIP e selecione Extrair Todos.

O diretório criado extraindo o arquivo ZIP é o diretório de nível superior para a instalação do JBoss EAP. Ele é referido como EAP_HOME.

2.2. Iniciando e Encerrando o JBoss EAP

2.2.1. Iniciando o JBoss EAP

O JBoss EAP pode ser executado em um dos dois modos de operação: como um servidor autônomo ou em um domínio gerenciado e possui suporte em várias plataformas: Red Hat Enterprise Linux, Windows Server, Oracle Solaris e HP-UX da Hewlett-Packard.

O comando específico para iniciar o JBoss EAP depende da plataforma subjacente e do modo de operação desejado.

Iniciando o JBoss EAP como um Servidor Autônomo
$ EAP_HOME/bin/standalone.sh
Nota

Para o Windows Server, use o scrip EAP_HOME\bin\standalone.bat.

Este script de inicialização usa o arquivo EAP_HOME/bin/standalone.conf (ou standalone.conf.bat para Windows Server) para definir algumas preferências padrão, tais como as opções JVM. Você pode personalizar as configurações através deste arquivo.

O JBoss EAP usa o arquivo de configuração standalone.xml por padrão, mas pode ser iniciado usando um outro diferente. Para detalhes sobre os arquivos de configuração de servidor autônomo disponíveis e como usá-los, consulte a seção Arquivos de Configuração de Servidor Autônomo.

Para uma lista completa de todos os argumentos do script de inicialização disponíveis e suas finalidades, utilize o argumento --help ou consulte a seção Argumentos de tempo de execução do servidor .

Iniciando o JBoss EAP em um Domínio Gerenciado

O controlador de domínio deve ser iniciado antes dos servidores em qualquer um dos grupos de servidores no domínio. Use o script a seguir para iniciar primeiro o controlador de domínio e, depois, para cada controlador do host associado.

$ EAP_HOME/bin/domain.sh
Nota

Para o Windows Server, use o scrip EAP_HOME\bin\domain.bat.

Este script de inicialização usa o arquivo EAP_HOME/bin/domain.conf (ou domain.conf.bat para Windows Server) para definir algumas preferências padrão, tais como as opções JVM. Você pode personalizar as configurações através deste arquivo.

O JBoss EAP usa o arquivo de configuração de host host.xml por padrão, mas pode ser iniciado usando um outro diferente. Para detalhes sobre os arquivos de configuração de domínio gerenciado disponíveis e como usá-los, consulte a seção Arquivos de Configuração de Domínio Gerenciado.

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. Encerrando o JBoss EAP

A forma como você deve encerrar o JBoss EAP depende de como ele foi iniciado.

Encerrando uma Instância Interativa do JBoss EAP

Pressione Ctrl+C no terminal onde o JBoss EAP foi iniciado.

Encerrando uma Instância do JBoss EAP em Segundo Plano

Use a CLI de gerenciamento para conectar-se com a instância em execução e desligue o servidor.

  1. Inicie a CLI de gerenciamento.

    $ EAP_HOME/bin/jboss-cli.sh --connect
  2. Emita o comando shutdown.

    shutdown
Nota

Quando estiver executando em um domínio gerenciado, você deve especificar o nome do host a ser desligado usando o argumento --host com o comando shutdown.

2.3. Gerenciamento do JBoss EAP

O JBoss EAP usa uma configuração simplificada, com um arquivo de configuração por servidor autônomo ou domínio gerenciado. A configuração padrão para um servidor autônomo fica armazenada no arquivo EAP_HOME/standalone/configuration/standalone.xml e a configuração padrão para um domínio padrão fica armazenada no arquivo EAP_HOME/domain/configuration/domain.xml. Já a configuração padrão para um controlador do host fica armazenada no arquivo EAP_HOME/domain/configuration/host.xml.

O JBoss EAP pode ser configurado usando a CLI de gerenciamento ou o console de gerenciamento baseado na web. As alterações feitas usando essas interfaces de gerenciamento persistem automaticamente e os arquivos de configuração XML são sobrescritos pela API de Gerenciamento. Não é recomendável editar os arquivos de configuração XML manualmente.

2.3.1. Usuários de Gerenciamento

Você deve criar pelo menos um usuário administrativo para usar o console de gerenciamento. A comunicação baseada em HTTP com o JBoss EAP é considerada de acesso remoto, mesmo que o tráfego seja originado no localhost. Caso você tente acessar o console de gerenciamento antes de adicionar um usuário, você receberá uma mensagem de erro.

Dependendo de como o JBoss é instalado, poderá não haver contas de usuário disponíveis inicialmente para acessar as interfaces de gerenciamento. Se o JBoss EAP é instalado com o instalador gráfico, então uma conta de usuário com os privilégios necessários é criada durante o processo de instalação. Caso contrário, você deve criar pelo menos um usuário administrativo para acessar as interfaces de gerenciamento.

Este guia cobre um gerenciamento de usuários simples para o JBoss EAP usando o script add-user, que é um utilitário para a adição de novos usuários aos arquivos de propriedades para a autenticação inicial. Para uma autenticação mais avançada e opções de autorização, como LDAP ou Controle de Acesso Baseado em Função (RBAC), consulte a seção Gerenciamento Centralizado de Autenticação do guia Arquitetura de Segurança do JBoss EAP .

2.3.1.1. Adicionando um Usuário de Gerenciamento

  1. Execute o script utilitário add-user e siga os prompts.

    $ EAP_HOME/bin/add-user.sh
    Nota

    Para o Windows Server, use o scrip EAP_HOME\bin\add-user.bat.

  2. Pressione ENTER para selecionar a opção padrão (a) e adicionar um usuário de gerenciamento.

    Este usuário será adicionado ao ManagementRealm e será autorizado a desempenhar operações de gerenciamento usando o console de gerenciamento ou a CLI de gerenciamento. A outra opção (b) adiciona um usuário ao ApplicationRealm, que é usado para aplicativos e fornece nenhuma permissão em particular.

  3. Insira o nome de usuário e a senha. Você será solicitado a confirmar a senha.

    Por padrão, o JBoss EAP permite o uso de senhas fracas, mas emitirá um aviso. Consulte a seção Definindo restrições de senha do utilitário Add-User do Guia de Configuração do JBoss EAP para detalhes sobre a alteração deste comportamento padrão.

  4. Insira uma lista separada por vírgulas dos grupos aos quais o usuário pertence. Se você não deseja que o usuário pertença a grupo algum, pressione ENTER para deixar em branco.
  5. Revise as informações e insira yes para confirmar.
  6. Determine se este usuário representa uma instância do servidor remoto do JBoss EAP. Para um usuário de gerenciamento básico, insira no.

    Um tipo de usuário que pode precisar ser adicionado ao ManagementRealm é o usuário representando uma outra instância do JBoss EAP, que deve ser capaz de autenticar-se para associar-se como um membro de um cluster. Se este for o caso, responda yes a este prompt e você receberá um valor secreto com hash representando a senha do usuário, que precisará ser adicionado a um arquivo de configuração diferente.

Os usuários também podem ser criados sem interatividade, passando os parâmetros ao script add-user. Esta abordagem não é recomendada nos sistemas compartilhados, pois as senhas ficarão visíveis ao fazer o log e nos arquivos de histórico. Para mais informações, consulte Executando o Utilitário Add-User Sem Interatividade.

2.3.1.2. Executando o Utilitário Add-User Sem Interatividade

Você pode executar o script do add-user sem interatividade passando argumentos na linha de comando. No mínimo, o nome de usuário e a senha devem ser fornecidos.

Atenção

Esta abordagem não é recomendada nos sistemas compartilhados, pois as senhas ficarão visíveis ao fazer o log e nos arquivos de histórico.

Criando um Usuário Pertencendo a Múltiplos Grupos

O comando a seguir adiciona um usuário de gerenciamento (mgmtuser1) ao guest e aos grupos mgmtgroup.

$ EAP_HOME/bin/add-user.sh -u 'mgmtuser1' -p 'password1!' -g 'guest,mgmtgroup'
Especificando um Arquivo de Propriedades Alternativas

Por padrão, as informações dos grupos e usuários criadas usando o script add-user são armazenadas nos arquivos de propriedades localizados no diretório de configuração do servidor.

As informações dos usuários são armazenadas nos seguintes arquivos de propriedades:

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

As informações dos grupos são armazenadas nos seguintes arquivos de propriedades:

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

Esses diretórios padrão e os nomes de arquivo de propriedades podem ser substituídos. O comando a seguir adiciona um novo usuário, especificando um nome e uma localização diferente para os arquivos de propriedades do usuário.

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

O novo usuário foi adicionado aos arquivos de propriedades do usuário agora localizado em /path/to/standaloneconfig/newname.properties e /path/to/domainconfig/newname.properties. Observe que esses arquivos já devem existir ou você encontrará um erro.

Para uma lista completa de todos os argumentos disponíveis do add-user e suas finalidades, use o argumento --help ou consulte a seção Argumentos para o utilitário Add-User.

2.3.2. Interfaces de Gerenciamento

2.3.2.1. CLI de Gerenciamento

A CLI (interface de linha de comando) de gerenciamento é uma ferramenta de administração da linha de comando do JBoss EAP.

Use a CLI de gerenciamento para iniciar e encerrar servidores, implantar e cancelar implantação de aplicativos, configurar o sistema e desempenhar outras tarefas administrativas. As operações podem ser desempenhadas em modo batch, permitindo que múltiplas tarefas sejam executadas em grupo.

Vários comandos comuns do terminal estão disponíveis, tais como ls, cd e pwd. A CLI de gerenciamento também suporta o preenchimento automático através da tecla tab.

Para informações detalhadas sobre a utilização da CLI de gerenciamento, incluindo comandos e operações, sintaxe e execução de modo em lotes, consulte o Guia da CLI de Gerenciamento do JBoss EAP.

Iniciando a CLI de Gerenciamento
$ EAP_HOME/bin/jboss-cli.sh
Nota

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

Conectando-se a um Servidor em Execução
connect

Ou você pode iniciar a CLI de gerenciamento e conectar-se em apenas uma etapa usando o comando EAP_HOME/bin/jboss-cli.sh --connect .

Exibindo Ajuda

Use o comando a seguir para ajuda em geral:

help

Use o comando a seguir para ajuda sobre um comando específico:

deploy --help
Encerrando a CLI de Gerenciamento
quit
Exibindo as Configurações do Sistema

O comando a seguir usa a operaçãoread-attribute para especificar se a fonte de dados de exemplo está habilitada ou não.

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

Quando estiver executando em um domínio gerenciado, você deve especificar o perfil a ser atualizado usando /profile=PROFILE_NAME antes do comando.

/profile=default/subsystem=datasources/data-source=ExampleDS:read-attribute(name=enabled)
Atualizando as Configurações do Sistema

O comando a seguir usa a operação write-attribute para desabilitar a fonte de dados de exemplo.

/subsystem=datasources/data-source=ExampleDS:write-attribute(name=enabled,value=false)
Iniciando os Servidores

A CLI de gerenciamento também pode ser usada para iniciar e encerrar os servidores quando estiver executando em um domínio gerenciado.

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

2.3.2.2. Console de Gerenciamento

O console de gerenciamento é uma ferramenta de administração baseada na web para o JBoss EAP.

Use o console de gerenciamento para iniciar e encerrar os servidores, implantar e cancelar a implantação de aplicativos, ajustar as configurações do sistema e realizar modificações persistentes à configuração do servidor. O console de gerenciamento também possui a habilidade de desempenhar tarefas administrativas, com notificações ativas quando qualquer alteração desempenhada pelo atual usuário exige que a instância do servidor seja reiniciada ou recarregada.

Em um domínio gerenciado, as instâncias do servidor e os grupos do servidor no mesmo domínio podem ser gerenciados centralmente pelo console de gerenciamento do controlador de domínio.

Para uma instância do JBoss EAP executando no host local e usando a porta de gerenciamento padrão, o console de gerenciamento pode ser acessado através de um navegador da web em http://localhost:9990/console/App.html. Você poderá fazer a autenticação com um usuário que tenha permissões para acessar o console de gerenciamento.

O console de gerenciamento fornece as seguintes guias para navegação e gerenciamento de seu servidor autônomo JBoss EAP ou domínio gerenciado.

Home
Aprenda como realizar várias configurações comuns e gerenciar tarefas. Faça um tour para familiarizar-se com o console de gerenciamento do JBoss EAP.
Implementações
Adicione, remova e possibilite implementações. Em um domínio gerenciado, distribua implementações para grupos de servidores.
Configuração
Configure subsistemas disponíveis que fornecem recursos como serviços web, mensagens ou alta disponibilidade. Em um domínio gerenciado, gerencie os perfis que contêm configurações de subsistemas diferentes.
Tempo de execução
Consulte informações de tempo de execução, como status do servidor, utilização de JVM e logs de servidores. Em um domínio gerenciado, gerencie seus hosts, grupos de servidores e serviços.
Controle de acesso
Atribua funções para usuários e grupos quando utilizar Controle de Acesso Baseado em Função (RBAC).
Patching
Aplique patches para as instâncias de seu JBoss EAP.
Nota

Para fazer um tour sobre console de gerenciamento atualizado, clique no link Faça um Tour na página inicial do console de gerenciamento.

Para ver mais detalhes sobre os campos de formulários, clique no link Precisa Ajuda?

Para ver o histórico de mensagens das ações de configuração que você executou, clique no link Mensagens em cima, à direita no console de gerenciamento.

2.3.3. Arquivos de Configuração

2.3.3.1. Arquivos de Configuração de Servidor Autônomo

Os arquivos de configuração de servidor autônomo estão localizados no diretório EAP_HOME/standalone/configuration. Existe um arquivo separado para cada um dos quatro perfis predefinidos (default, ha, full, full-ha).

Tabela 2.1. Arquivos de Configuração de Servidor Autônomo

Arquivo de ConfiguraçãoFinalidade

standalone.xml

Este arquivo de configuração contém a configuração padrão usada quando você inicia o seu servidor autônomo. Ele possui todas as informações sobre o servidor, incluindo subsistemas, sistemas de rede, implantações, associações e outros detalhes configuráveis. Ele não fornece os subsistemas necessários para o sistema de mensagens ou alta disponibilidade.

standalone-ha.xml

Este arquivo de configuração inclui todos os subsistemas padrão e adiciona os subsistemas mod_cluster e JGroups para alta disponibilidade. Ele não fornece os subsistemas necessários para o sistema de mensagens.

standalone-full.xml

Este arquivo de configuração inclui todos os subsistemas padrão e adiciona os subsistemas Messaging e IIOP. Ele não fornece os subsistemas necessários para alta disponibilidade.

standalone-full-ha.xml

Este arquivo de configuração inclui suporte para todos os subsistemas possíveis, incluindo aqueles para o sistema de mensagens e alta disponibilidade.

Por padrão, ao iniciar o JBoss EAP como um servidor autônomo, use o arquivo standalone.xml. Para iniciar o JBoss EAP com uma configuração diferente, use o argumento do --server-config. Por exemplo:

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

2.3.3.2. Arquivos de Configuração de Domínio Gerenciado

Os arquivos de configuração de domínio gerenciado estão localizados no diretório EAP_HOME/domain/configuration.

Tabela 2.2. Arquivos de Configuração de Domínio Gerenciado

Arquivo de ConfiguraçãoFinalidade

domain.xml

Este é o principal arquivo de configuração para um domínio gerenciado. Apenas o domínio mestre é capaz de ler este arquivo. Ele contém as configurações para todos os perfis (ex. default, ha, full, full-ha).

host.xml

Este arquivo inclui detalhes de configuração específicos a um host físico em um domínio gerenciado, tais como interfaces de rede, associações, nome do host e outros detalhes. O arquivo host.xml inclui todos os recursos tanto do host-master.xml quanto do host-slave.xml, os quais estão descritos abaixo.

host-master.xml

Este arquivo inclui apenas os detalhes de configuração necessários para a execução de um servidor como um servidor mestre do domínio gerenciado (controlador de domínio).

host-slave.xml

Este arquivo inclui apenas os detalhes de configuração necessários para a execução de um servidor como um servidor subordinado do domínio gerenciado (controlador do host).

Por padrão, ao iniciar o JBoss EAP em um domínio gerenciado use o arquivo host.xml. Para iniciar o JBoss EAP com uma configuração diferente, use o argumento --host-config. Por exemplo:

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

2.3.3.3. Fazendo o Backup dos Dados de Configuração

Para restaurar mais tarde a configuração do servidor do JBoss EAP, deve-se fazer o backup dos itens nas seguintes localizações:

  • EAP_HOME/standalone/configuration/

    • Faça o backup do diretório inteiro para salvar os dados do usuário, a configuração do servidor e as configurações de log para os servidores autônomos.
  • EAP_HOME/domain/configuration/

    • Faça o backup do diretório inteiro para salvar os dados do perfil e do usuário, a configuração do host e do domínio e as configurações de log para os domínios gerenciados.
  • EAP_HOME/modules/system/layers/base/

    • Faça o backup de todos os módulos personalizados.
  • EAP_HOME/welcome-content/

    • Faça o backup de todos os conteúdos personalizados de boas vindas.
  • EAP_HOME/bin/

    • Faça o backup de todos os scripts personalizados ou dos arquivos de configuração de inicialização.

2.3.3.4. Snapshots de arquivos de configuração

Para auxiliar no gerenciamento e na manutenção do servidor, o JBoss EAP cria uma versão do arquivo de configuração original com um carimbo de data/hora no momento da inicialização. Todas as alterações de configuração adicionais realizadas pelas operações de gerenciamento obterão o backup automático do arquivo original e a preservação de uma cópia de trabalho da instância para referência e reversão. Além disto, também podem ser tirados snapshots da configuração, que são cópias pontuais da atual configuração do servidor. Esses snapshots podem ser salvos e carregados por um administrador.

Os exemplos a seguir usam o arquivo standalone.xml, mas o mesmo processo pode ser aplicado nos arquivos domain.xml e host.xml.

Tirando um Snapshot

Use a CLI de gerenciamento para tirar um snapshot das configurações atuais.

:take-snapshot
{
    "outcome" => "success",
    "result" => "EAP_HOME/standalone/configuration/standalone_xml_history/snapshot/20151022-133109702standalone.xml"
}
Listando os Snapshots

Use a CLI de gerenciamento para listar todos os snapshots que foram tirados.

:list-snapshots
{
    "outcome" => "success",
    "result" => {
        "directory" => "EAP_HOME/standalone/configuration/standalone_xml_history/snapshot",
        "names" => [
            "20151022-133109702standalone.xml",
            "20151022-132715958standalone.xml"
        ]
    }
}
Excluindo um Snapshot

Use a CLI de gerenciamento para excluir um snapshot.

:delete-snapshot(name=20151022-133109702standalone.xml)
Iniciando o Servidor com um Snapshot

O servidor pode ser iniciado usando um snapshot ou uma versão da configuração salva automaticamente.

  1. Navegue até o diretório EAP_HOME/standalone/configuration/standalone_xml_history e identifique o snapshot ou o arquivo de configuração salvo a ser carregado.
  2. Inicie o servidor e indique o arquivo de configuração selecionado. Forneça o caminho do arquivo relativo ao diretório de configuração (ex. EAP_HOME/standalone/configuration).

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

Quando estiver executando em um domínio gerenciado, use o argumento --host-config em vez de especificar o arquivo de configuração.

2.3.3.5. Substituição de Propriedades

O JBoss EAP permite que você use expressões para definir propriedades substituíveis no lugar dos valores literais na configuração. As expressões usam o formato ${PARAMETER:DEFAULT_VALUE}. Se o parâmetro especificado é definido, então o valor do parâmetro será usado. Caso contrário, o valor padrão será usado.

As fontes com suporte para a resolução de expressões são as propriedades do sistema, as variáveis do ambiente e o cofre. Para implantações apenas, as fontes podem ser as propriedades listadas em um arquivo META-INF/jboss.properties no arquivo de implantação. Para os tipos de implantação que suportam subimplantações, a resolução abrange todas as subimplantações se o arquivo de propriedades estiver na implantação externa (ex. EAR). Se o arquivo de propriedades estiver na subimplantação, então a resolução abrange apenas essa subimplantação.

O exemplo abaixo do arquivo de configuração standalone.xml define o inet-address para a interface pública como 127.0.0.1 , a não ser que o parâmetro jboss.bind.address esteja definido.

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

O parâmetro jboss.bind.address pode ser definido iniciando o EAP como um servidor autônomo com o seguinte comando:

$ EAP_HOME/bin/standalone.sh -Djboss.bind.address=IP_ADDRESS
Expressões Aninhadas

As expressões podem ser aninhadas, permitindo um uso mais avançado delas no lugar dos valores fixos. O formato de uma expressão aninhada é o mesmo de uma expressão normal, com a diferença de que uma expressão é incorporada a outra, por exemplo:

${SYSTEM_VALUE_1${SYSTEM_VALUE_2}}

As expressões aninhadas são avaliadas recursivamente, portanto a expressão interna é avaliada primeiro e, depois, a expressão externa. As expressões também podem ser recursivas, onde uma expressão determina a outra. As expressões aninhadas são permitidas onde expressões, em geral, são permitidas, com exceção dos comandos da CLI de gerenciamento.

Um exemplo de onde uma expressão aninhada pode ser usada é quando a senha usada em uma definição de fonte de dados está mascarada. A configuração para a fonte de dados deve ter a seguinte linha:

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

O valor de ds_ExampleDS poderia ser substituído por uma propriedade do sistema (datasource_name) usando uma expressão aninhada. A configuração para a fonte de dados poderia ter, em vez disto, a seguinte linha:

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

O JBoss EAP avaliaria primeiro a expressão ${datasource_name} e, então, a entraria na expressão maior e avaliaria a expressão resultante. A vantagem desta configuração é que o nome da fonte de dados é abstraído da configuração fixa.

Substituição de Propriedades Baseadas no Descritor

A configuração dos aplicativos (ex. os parâmetros de conexão da fonte de dados) varia tipicamente entre o desenvolvimento, o teste e os ambientes de produção. Esta variação é, às vezes, acomodada pelos scripts do sistema de compilação, já que a especificação Java EE não contém um método para externalizar essas configurações. Com o JBoss EAP, você pode usar a substituição das propriedades baseadas no descritor para gerenciar a configuração externamente.

A substituição das propriedades baseadas no descritor permite que você elimine suposições sobre o ambiente a partir do aplicativo e da cadeia de compilação. As configurações específicas ao ambiente podem ser especificadas nos descritores de implantação, em vez de serem especificadas nas anotações ou nos scripts do sistema de compilação. É possível fornecer a configuração nos arquivos ou como parâmetros na linha de comando.

Existem diversos sinalizadores no subsistema EE que controlam a aplicação da substituição de propriedades.

A substituição de descritores específicos ao JBoss é controlada pelo sinalizador jboss-descriptor-property-replacement e é habilitada por padrão. Quando habilitada, as propriedades podem ser substituídas nos seguintes descritores de implantação:

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

O comando da CLI de gerenciamento a seguir pode ser usado para habilitar ou desabilitar a substituição de propriedades nos descritores específicos ao JBoss:

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

A substituição de descritores do Java EE é controlada pelo sinalizador spec-descriptor-property-replacement e é desabilitada por padrão. Quando habilitada, as propriedades podem ser substituídas nos seguintes descritores de implantação:

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

O comando da CLI de gerenciamento a seguir pode ser usado para habilitar ou desabilitar a substituição de propriedades nos descritores do Java EE:

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

2.4. Configuração de Porta e Rede

2.4.1. Interfaces

O JBoss referencia as interfaces nomeadas por toda a configuração. Isto permite que a configuração referencie declarações de interface individuais com nomes lógicos, em vez de exigir os detalhes completos da interface a cada uso.

Isto também permite uma configuração mais fácil em um domínio gerenciado, onde os detalhes da interface de rede podem variar em múltiplas máquinas. Cada instância do servidor pode corresponder a um grupo de nome lógico.

Todos os arquivos standalone.xml, domain.xml e host.xml incluem declarações de interface. Há diversos nomes de interfaces pré-configurados, dependendo de qual configuração padrão é usada. A interface de gerenciamento pode ser utilizada para todos os componentes e serviços que exigem a camada de gerenciamento, incluindo o endpoint de gerenciamento HTTP. A interface pública pode ser utilizada para toda comunicação de rede relacionada ao aplicativo. A interface não segura é usada para soquetes IIOP na configuração padrão. A interface privada é utilizada por soquetes JGroups na configuração padrão.

2.4.1.1. Configurações de Interface Padrão

<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>

Por padrão, o JBoss EAP vincula essas interfaces com 127.0.0.1, mas esses valores podem ser substituídos durante o tempo de execução ao definir a propriedade apropriada. Por exemplo, o inet-address da interface pública pode ser definido ao iniciar o JBoss EAP como um servidor autônomo com o comando a seguir:

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

Alternativamente, você pode utilizar opção -b na linha de comando de inicialização do servidor. Para mais informações sobre opções de inicialização de servidor, consulte Argumentos de tempo de execução do 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. Configurando Interfaces

As interfaces de rede são declaradas ao especificar um nome lógico e os critérios de seleção para a interface física. Os critérios de seleção podem referenciar um endereço curinga ou especificar um conjunto de uma ou mais características que uma interface ou um endereço deve ter para obter uma correspondência válida. Para uma lista de todos os critérios de seleção da interface disponíveis, consulte a seção Atributos de Interface.

As interfaces podem ser configuradas usando o console de gerenciamento ou a CLI de gerenciamento. Seguem abaixo alguns exemplos de adição e atualização de interfaces. O comando da CLI de gerenciamento é apresentado primeiro, seguido pela configuração XML correspondente.

Adicionando uma Interface com um Valor NIC

Adicione uma nova interface com o valor NIC de eth0.

/interface=external:add(nic=eth0)
<interface name="external">
   <nic name="eth0"/>
</interface>
Adicionando uma Interface com Diversos Valores Condicionais

Adicione uma nova interface que corresponda a qualquer interface ou endereço na sub-rede; se a interface estiver ativa, suportar multicast e não ser ponto a ponto.

/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>
Atualizando um Atributo da Interface

Atualize o valor inet-address padrão da interface pública, mantendo a propriedade jboss.bind.address para permitir que este valor seja definido durante o tempo de execução.

/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>
Adicionando uma Interface a um Servidor em um Domínio Gerenciado
/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. Associações de Soquete

As associações de soquete e os grupos de associação de soquete permitem que você defina as portas de rede e suas relações para as interfaces de rede necessárias para a sua configuração do JBoss EAP. Uma associação de soquete é uma configuração nomeada para um soquete. Um grupo de associação de soquete é uma coleção das declarações da associação de soquete que são agrupadas sob um nome lógico.

Isto permite que outras seções da configuração façam referência às associações de soquete pelos seus nomes lógicos, em vez de exigir os detalhes completos da configuração do soquete a cada uso.

As declarações para essas configurações nomeadas podem ser encontradas nos arquivos de configuração standalone.xml e domain.xml. Um servidor autônomo contém apenas um grupo de associação de soquete, enquanto um domínio gerenciado pode conter múltiplos grupos. Você pode criar um grupo de associação de soquete para cada grupo do servidor no domínio gerenciado ou compartilhar um grupo de associação de soquete entre os múltiplos grupos do servidor.

As portas usadas por padrão pelo JBoss EAP dependem dos grupos de associação de soquete que são usados e das exigências das suas implantações individuais.

2.4.2.1. Portas de Gerenciamento

As portas de gerenciamento foram consolidadas no JBoss EAP 7. Por padrão, o JBoss EAP 7 usa a porta 9990 para ambos, o gerenciamento nativo (CLI de gerenciamento) e o gerenciamento HTTP (console de gerenciamento baseado na web). A porta 9999, que foi usada como a porta de gerenciamento nativo no JBoss EAP 6, não é mais usada, mas ainda pode ser habilitada, caso necessário.

Se o HTTPS é habilitado para o console de gerenciamento, então a porta 9993 é usada por padrão.

2.4.2.2. Associações de Soquete Padrão

O JBoss EAP é fornecido com um grupo de associação de soquete para cada um dos quatro perfis predefinidos (default, ha, full, full-ha).

Para mais informações sobre as associações de soquete padrão, tais como descrições e portas padrão, consulte a seção Associações de Soquete Padrão.

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

Quando estiver executando como um servidor autônomo, apenas um grupo de associação de soquete é definido por aquivo de configuração. Cada arquivo de configuração de servidor autônomo (standalone.xml, standalone-ha.xml, standalone-full.xml, standalone-full-ha.xml) define as associações de soquete para as tecnologias usadas por seu perfil correspondente.

Por exemplo, o arquivo de configuração de servidor autônomo padrão (standalone.xml) especifica as associações de soquete abaixo:

<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>
Domínio Gerenciado

Quando estiver executando em um domínio gerenciado, todos os grupos de associação de soquete são definidos no arquivo domain.xml. Existem quatro grupos de associação de soquete predefinidos:

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

Cada grupo de associação de soquete especifica as associações de soquete para as tecnologias usadas por seu perfil correspondente. Por exemplo, o grupo de associação de soquete full-ha-sockets define várias associações de soquete jgroups, as quais são usadas pelo perfil full-ha para alta disponibilidade.

<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

A configuração de soquete para as interfaces de gerenciamento é definida no arquivo host.xml do controlador de domínio.

2.4.2.3. Configurando as Associações de Soquete

Quando estiver definindo uma associação de soquete, você pode definir os atributos de porta e de interface, assim como as configurações de multicast, como multicast-address e multicast-port. Para detalhes sobre todos os atributos da associação de soquete disponíveis, consulte a seção Atributos da Associação de Soquete.

As associações de soquete podem ser configuradas usando o console de gerenciamento ou a CLI de gerenciamento. As etapas a seguir passam pela adição de um grupo de associação de soquete, adição de uma associação de soquete e definição das configurações da associação de soquete usando a CLI de gerenciamento.

  1. Adicione um novo grupo de associação de soquete. Observe que esta etapa não pode ser desempenhada quando executando como um servidor autônomo.

    /socket-binding-group=new-sockets:add(default-interface=public)
  2. Adicione uma associação de soquete.

    /socket-binding-group=new-sockets/socket-binding=new-socket-binding:add(port=1234)
  3. Altere a associação de soquete para usar uma interface que não seja a padrão, definida pelo grupo de associação de soquete.

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

O exemplo a seguir mostra como a configuração XML pode ficar depois que as etapas acima são concluídas.

<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. Deslocamentos de Porta

Um deslocamento de porta é um valor numérico de deslocamento adicionado a todos os valores de porta especificados no grupo de associação de soquete para aquele servidor. Isto permite que o servidor herde os valores de porta definidos no seu grupo de associação de soquete, com um deslocamento para garantir que não haja conflito entre os outros servidores no mesmo host. Por exemplo, se a porta HTTP do grupo de associação de soquete é 8080 e um servidor usa um deslocamento de porta de 100, então a sua porta HTTP será 8180.

Segue abaixo um exemplo de configuração de um deslocamento de porta de 250 para um servidor em um domínio gerenciado usando a CLI de gerenciamento.

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

Os deslocamentos de porta podem ser usados para servidores em um domínio gerenciado e para a execução de múltiplos servidores autônomos em um mesmo host.

Você pode passar em um deslocamento de porta quando iniciar um servidor autônomo utilizando a propriedade jboss.socket.binding.port-offset

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

2.4.3. Endereços IPv6

Por padrão, o JBoss EAP é configurado para executar usando endereços IPv4. As etapas abaixo mostram como configurar o JBoss EAP para executar usando endereços IPv6.

Configurando a Pilha JVM para Endereços IPv6

Atualize a configuração de inicialização para usar endereços IPv6.

  1. Abra o arquivo de configuração de inicialização.

    • Quando estiver executando como um servidor autônomo, edite o arquivo EAP_HOME/bin/standalone.conf (ou standalone.conf.bat para o Windows Server).
    • Quando estiver executando em um domínio gerenciado, edite o arquivo EAP_HOME/bin/domain.conf (ou domain.conf.bat para o Windows Server).
  2. Defina a propriedade java.net.preferIPv4Stack como false.

    -Djava.net.preferIPv4Stack=false
  3. Acrescente a propriedade java.net.preferIPv6Addresses e a defina como true.

    -Djava.net.preferIPv6Addresses=true

O exemplo a seguir mostra como as opções JVM no arquivo de configuração de inicialização podem ficar depois que as alterações acima são aplicadas.

# 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
Atualizando Declarações de Interface para Endereços IPv6

Os valores de interface padrão na configuração podem ser mudados para endereços IPv6. Por exemplo, o comando da CLI de gerenciamento abaixo define a interface de gerenciamento como endereço IPv6 de loopback (::1).

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

O exemplo a seguir mostra como a configuração XML deve ficar depois que o comando acima é executado.

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

Capítulo 3. Desenvolvendo Aplicativos Usando o JBoss EAP

3.1. Visão Geral

Este guia fornece informações sobre o desenvolvimento de aplicativos usando o Red Hat JBoss Developer Studio e exemplos de início rápido do JBoss EAP 7.

O Red Hat JBoss Developer Studio é um ambiente de desenvolvimento integrado (IDE) baseado em Eclipse que integra plug-ins do JBoss para o desenvolvimento de aplicativos. O JBoss Developer Studio pode ajudar no desenvolvimento de seu aplicativo com seus assistentes específicos ao JBoss e a habilidade de implantar aplicativos nos servidores do JBoss. Muitos exemplos de código de início rápido são fornecidos com o JBoss EAP 7 para auxiliar os usuários a começar a escrever os aplicativos usando diferentes tecnologias Java EE 7.

Este guia fornece instruções básicas para o JBoss Developer Studio. Consulte o guia Install Red Hat JBoss Developer Studio para instruções completas de instalação.

3.2. Configurando o Ambiente de Desenvolvimento

3.2.1. Baixando o JBoss Developer Studio

O JBoss Developer Studio pode ser baixado através do Portal do Cliente Red Hat.

  1. Faça o login no Portal do Cliente Red Hat.
  2. Clique em Downloads.
  3. Na lista Downloads de Produtos, clique em Red Hat JBoss Developer Studio.
  4. Selecione a versão desejada no menu suspenso Versão.

    Nota

    É recomendável usar a versão 9.1 ou superior do JBoss Developer Studio.

  5. Encontre a entrada Red Hat JBoss Developer Studio 9.x.x Stand-alone Installer na tabela e clique Download.
  6. Salve o arquivo JAR no diretório desejado.

3.2.2. Instalando o JBoss Developer Studio

  1. Abra um terminal e navegue até o diretório contendo o arquivo JAR baixado.
  2. Execute o comando a seguir para iniciar o programa do instalação da GUI:

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

    Alternativamente, você pode clicar duas vezes no arquivo JAR para iniciar o programa de instalação.

  3. Clique em Próximo para iniciar o processo de instalação.
  4. Selecione I accept the terms of this license agreement (Eu aceito os termos deste contrato de licença) e clique em Next.
  5. Ajuste o caminho de instalação e clique em Next.

    Nota

    Caso a pasta do caminho de instalação não exista, um prompt aparecerá. Clique em OK para criar a pasta.

  6. Selecione uma JVM ou deixe a JVM padrão selecionada e clique em Next.
  7. Clique em Next quando for solicitado a selecionar plataformas e servidores.
  8. Revise os detalhes de instalação e clique em Next.
  9. Clique em Next quando o processo de instalação estiver concluído.
  10. Configure os atalhos da área de trabalho para o JBoss Developer Studio e clique em Next.
  11. Clique em Done (Concluído).

3.2.3. Iniciando o JBoss Developer Studio

Para iniciar o JBoss Developer Studio, você pode clicar duas vezes no atalho da área de trabalho criado durante a instalação ou você pode iniciá-lo a partir da linha de comando. Siga as instruções abaixo para iniciar o JBoss Developer Studio usando a linha de comando.

  1. Abra um terminal e navegue até o diretório de instalação do JBoss Developer Studio.
  2. Execute o comando a seguir para iniciar o JBoss Developer Studio:

    $ ./jbdevstudio
    Nota

    Para o Windows Server, use o arquivo jbdevstudio.bat.

3.2.4. Adicionando o servidor do JBoss EAP ao JBoss Developer Studio.

Estas instruções presumem que você não tenha adicionado ainda nenhum servidor do JBoss EAP ao JBoss Developer Studio. Use as etapas a seguir para adicionar o seu servidor do JBoss EAP usando o assistente Definir Novo Servidor.

  1. Abra a guia Servers.

    Nota

    Se a guia Servidores não é exibida, adicione-a ao painel selecionando JanelaMostrar ExibiçãoServidores.

  2. Clique no link Nenhum servidor disponível. Clique neste link para criar um novo servidor.

    Figura 3.1. Adicionando um Novo Servidor

    The *Servers* tab when no servers are available.
  3. Expanda Red Hat JBoss Middleware e selecione JBoss Enterprise Application Platform 7.0. Insira um nome de servidor, por exemplo, JBoss EAP 7.0 e clique em Next.

    Figura 3.2. Definindo um Novo Servidor

    The *Define a New Server* window.
  4. Crie um adaptador de servidor para gerenciar a inicialização e o encerramento do servidor. Mantenha o padrão e clique em Next.

    Figura 3.3. Criando um Novo Adaptador de Servidor

    The *Create a New Server Adapter* window.
  5. Insira um nome, por exemplo JBoss EAP 7.0 Runtime. Clique em Navegar próximo ao Diretório Base e navegue até o seu diretório de instalação do JBoss EAP. Depois, clique em Próximo.

    Figura 3.4. Adicionando um Novo Ambiente de Tempo de Execução do Servidor

    The *JBoss Runtime* window.
    Nota

    Alguns inícios rápidos exigem que você execute o servidor com um perfil diferente ou argumentos adicionais. Por exemplo, para implantar um início rápido que exige o perfil full, você deve definir um novo servidor e especificar standalone-full.xml no campo Arquivo de configuração. Certifique-se de fornecer um nome descritivo ao novo servidor.

  6. Configure projetos existentes para o novo servidor. Já que você não tem projeto algum neste momento, clique em Concluir.

    Figura 3.5. Modificando os Recursos para o Novo Servidor

    The *Add and Remove Resources* window.

O servidor do JBoss EAP 7.0 está agora listado na guia Servidores.

Figura 3.6. Lista de Servidores

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

3.3. Usando os Exemplos de Início Rápido

3.3.1. Sobre o Maven

O Apache Maven é uma ferramenta de automação de compilação distribuída, usada no desenvolvimento de aplicativos Java para criar, gerenciar e compilar projetos de software. O Maven utiliza arquivos de configuração padrão chamados POM (Modelo de Objeto do Projeto) para definir os projetos e gerenciar o processo de compilação. Os arquivos POM descrevem o módulo e as dependências dos componentes, a ordem de compilação e as metas para a saída e o empacotamento do projeto resultante usando um arquivo XML. Isto garante que o projeto seja compilado de forma correta e uniforme.

Nota

Os exemplos de Quickstart incluídos no JBoss EAP são projetos Maven.

O Maven é capaz de atingir isto usando um repositório. Um repositório do Maven armazena bibliotecas Java, plug-ins e outros artefatos de compilação. O repositório público padrão é o Repositório Central do Maven 2, mas os repositórios podem ser privados e internos dentro de uma empresa com o objetivo de compartilhar artefatos comuns entre as equipes de desenvolvimento. Os repositórios também estão disponíveis através de terceiros. Para mais informações, consulte o projeto Apache Maven e o guia Introduction to Repositories.

O JBoss EAP inclui um repositório do Maven que contém muitos dos requisitos que os desenvolvedores Java EE geralmente usam para compilar aplicativos no JBoss EAP.

Para mais informações sobre como usar o Maven com JBoss EAP, consulte Usando Maven com JBoss EAP no Guia de Desenvolvimento do JBoss EAP.

3.3.2. Usando Maven com os Inícios Rápidos

As dependências e os artefatos necessários para compilar e implantar aplicativos no JBoss EAP 7 são hospedados em um repositório público. Com o JBoss EAP 7, não é mais necessário configurar o arquivo do Maven settings.xml para usar esses repositórios durante a compilação dos inícios rápidos. Os repositórios do Maven agora são configurados nos arquivos POM dos projetos de início rápido. Este método de configuração é fornecido para facilitar a introdução dos inícios rápidos, no entanto, não é geralmente recomendado para projetos de produção, pois pode deixar a sua compilação mais lenta.

O Red Hat JBoss Developer Studio inclui o Maven, portanto não há necessidade de baixá-lo e instalá-lo separadamente. É recomendável usar a versão 9.1 ou superior do JBoss Developer Studio.

Se você planeja usar a linha de comando do Maven para compilar e implantar seus aplicativos, então você deve baixar primeiro o Maven através do projeto Apache Maven e instalá-lo seguindo as instruções fornecidas na documentação do Maven.

3.3.3. Baixando e Executando os Inícios Rápidos

3.3.3.1. Baixando os Inícios Rápidos

O JBoss EAP vem com um conjunto completo de exemplos de código de início rápido criado para ajudar os usuários a começar a escrever aplicativos usando as várias tecnologias Java EE 7. Os inícios rápidos podem ser baixados a partir do Portal do Cliente Red Hat.

  1. Faça o login no Portal do Cliente Red Hat.
  2. Clique em Downloads.
  3. Na lista Downloads de Produtos, clique em Red Hat JBoss Enterprise Application Platform.
  4. Selecione a versão desejada no menu suspenso Versão.
  5. Encontre a entrada Red Hat JBoss Enterprise Application Platform 7.0.0 Quickstarts na tabela e clique em Download.
  6. Salve o arquivo ZIP no diretório desejado.
  7. Extraia o arquivo ZIP.

3.3.3.2. Executando os Inícios Rápidos no JBoss Developer Studio

Depois que os inícios rápidos foram baixados, eles podem ser importados no JBoss Developer Studio e implantados no JBoss EAP.

Importando um Início Rápido para o JBoss Developer Studio

Cada início rápido é fornecido com um arquivo POM que contém o seu projeto e informações de configuração. Use este arquivo POM para importar com facilidade o início rápido para o Red Hat JBoss Developer Studio.

Importante

Caso a sua pasta do projeto de início rápido esteja localizada no espaço de trabalho do IDE, quando você importá-la no Red Hat JBoss Developer Studio, o IDE gera um nome de arquivo WAR e um nome de projeto inválido. Certifique-se antes de que a sua pasta do projeto de início rápido esteja localizada fora do espaço de trabalho do IDE.

  1. Inicie o JBoss Developer Studio.
  2. Selecione ArquivoImportar.
  3. Selecione MavenProjetos Maven Existentes e clique em Next.

    Figura 3.7. Importando Projetos Maven Existentes

    The *Import* window.
  4. Navegue até o diretório do início rápido desejado (por exemplo, o início rápido helloworld) e clique em OK. A caixa de listagem dos Projetos é preenchida pelo arquivo pom.xml do projeto de início rápido selecionado.

    Figura 3.8. Selecionando Projetos Maven

    The *Maven Projects* selection window.
  5. Clique em Concluir.

Executando o Início Rápido helloworld

A execução do início rápido helloworld é uma maneira simples de verificar se o servidor do JBoss EAP está configurado e executando corretamente.

  1. Caso você não tenha definido um servidor ainda, siga as instruções para adicionar o servidor do JBoss EAP ao JBoss Developer Studio.
  2. Clique com o botão direito do mouse no projeto jboss-helloworld na guia Explorador de Projeto e selecione Executar ComoExecutar no Servidor.

    Figura 3.9. Executar Como - Executar no Servidor

    The *Run As* -> *Run on Server* screen capture.
  3. Selecione JBoss EAP 7.0 a partir da lista de servidores e clique em Next.

    Figura 3.10. Executar no Servidor

    The *Run on Server* window.
  4. O início rápido jboss-helloworld já está listado para ser configurado no servidor. Clique em Concluir para implantar o início rápido.

    Figura 3.11. Modificando os Recursos Configurados no Servidor

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

    • Na guia Servidor, o status do servidor do JBoss EAP 7.0 muda para Iniciado .
    • A guia Console mostra as mensagens detalhando a inicialização do servidor do JBoss EAP e a implantação do início rápido helloworld.

      WFLYUT0021: Registered web context: /jboss-helloworld
      WFLYSRV0010: Deployed "jboss-helloworld.war" (runtime-name : "jboss-helloworld.war")
    • O aplicativo helloworld está disponível em http://localhost:8080/jboss-helloworld e exibe o texto Hello World!.

Executando o Início Rápido bean-validation

Alguns inícios rápidos, tais como o bean-validation, não fornecem a camada da interface do usuário e, em vez disto, fornecem testes Arquillian para demonstrar funcionalidade.

  1. Importe o início rápido bean-validation no JBoss Developer Studio.
  2. Na guia Servidores, clique com o botão direito do mouse no servidor e selecione Iniciar para inicializar o servidor do JBoss EAP. Se você não encontrar a guia Servidores ou ainda não definiu um servidor, siga as instruções aqui: adicionar o servidor do JBoss EAP ao Red Hat JBoss Developer Studio.
  3. Clique com o botão direito do mouse no projeto jboss-bean-validation na guia Explorador de Projeto e selecione Executar ComoCompilação do Maven.
  4. Insira o seguinte no campo de entrada Metas e clique em executar.

    clean test -Parq-wildfly-remote

    Figura 3.12. Editando a Configuração

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

    A guia Console mostra os resultados dos testes Arquillian do 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. Executando os Inícios Rápidos através da Linha de Comando

Você pode compilar e implantar facilmente os inícios rápidos através da linha de comando usando o Maven. Se você ainda não instalou o Maven, consulte o projeto Apache Maven para baixá-lo e instalá-lo.

O arquivo README.md é fornecido no diretório raiz dos inícios rápidos e contém informações gerais sobre as exigências do sistema, configuração do Maven, adição de usuários e execução de inícios rápidos.

Cada início rápido também contém o seu próprio arquivo README.md que fornece instruções específicas e comandos do Maven para executar esse início rápido.

Executando o Início Rápido helloworld através da Linha de Comando

  1. Revise o arquivo README.md no diretório raiz do início rápido helloworld.
  2. Inicie o servidor do JBoss EAP.

    $ EAP_HOME/bin/standalone.sh
  3. Navegue até o diretório de início rápido helloworld.
  4. Compile e implante o início rápido usando o comando do Maven fornecido no arquivo README.md do início rápido.

    mvn clean install wildfly:deploy
  5. O aplicativo helloworld está disponível agora em http://localhost:8080/jboss-helloworld e exibe o texto Hello World!.

Apêndice A. Material de Referência

A.1. Argumentos de tempo de execução do servidor

O script de inicialização do servidor do aplicativo aceita argumentos e opções. Isto permite que o servidor inicialize sob configurações alternativas em relação àquelas definidas nos arquivos de configuração standalone.xml, domain.xml e host.xml.

As configurações alternativas podem incluir a inicialização do servidor com um conjunto alternativo de associações de soquete ou uma configuração secundária.

A lista dos parâmetros disponíveis pode ser acessada usando a opção de ajuda -h ou --help durante a inicialização.

Tabela A.1. Argumentos e Opções em Tempo de Execução

Argumentos ou OpçõesModo de OperaçãoDescrição

--admin-only

Autônomo

Define o tipo de execução do servidor como ADMIN_ONLY. Isto abrirá interfaces administrativas e aceitará solicitações de gerenciamento, mas não inicializa outros serviços do tempo de execução nem aceita solicitações do usuário final.

--admin-only

Domínio

Define o tipo de execução do controlador do host como ADMIN_ONLY, abrindo interfaces administrativas e aceitando solicitações de gerenciamento, mas não inicializa servidores ou aceita conexões de entrada de controladores do host subordinados, se esse controlador do host for o mestre do domínio.

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

Autônomo, Domínio

Define a propriedade do sistema jboss.bind.address, que é usada na configuração do endereço de associação para a interface pública. Isto deixa 127.0.0.1 como padrão, caso nenhum valor seja especificado. Consulte a entrada -b<interface>=<value> para a configuração do endereço de associação de outras interfaces.

-b<interface>=<value>

Autônomo, Domínio

Define a propriedade do sistema jboss.bind.address.<interface> como o valor especificado. Por exemplo, -bmanagement=IP_ADDRESS.

--backup

Domínio

Mantém uma cópia da configuração do domínio persistente mesmo que este host não seja o Controlador de Domínio.

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

Autônomo

Nome do arquivo de configuração do servidor para uso. O padrão é standalone.xml.

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

Domínio

Nome do arquivo de configuração do servidor para uso. O padrão é domain.xml.

--cached-dc

Domínio

Se o host não é o Controlador de Domínio e não pode contactá-lo durante inicialização, inicialize usando uma cópia armazenada localmente em cache da configuração do domínio.

--debug [<port>]

Autônomo

Ative o modo de depuração com um argumento opcional para especificar a porta. Isto funcionará apenas se o script de inicialização suportá-lo.

-D<name>[=<value>]

Autônomo, Domínio

Define uma propriedade do sistema.

--domain-config=<config>

Domínio

Nome do arquivo de configuração do servidor para uso. O padrão é domain.xml.

-h, --help

Autônomo, Domínio

Exibe a mensagem de ajuda.

--host-config=<config>

Domínio

Nome do arquivo de configuração do host. O padrão é host.xml.

--interprocess-hc-address=<address>

Domínio

Endereço através do qual o controlador do host aguarda pela comunicação do controlador de processos.

--interprocess-hc-port=<port>

Domínio

Porta através da qual o controlador do host aguarda pela comunicação do controlador de processos.

--master-address=<address>

Domínio

Define a propriedade do sistema jboss.domain.master.address como o valor especificado. Em uma configuração padrão do Controlador do Host subordinado, isto é usado para configurar o endereço do Controlador do Host mestre.

--master-port=<port>

Domínio

Define a propriedade do sistema jboss.domain.master.port como o valor especificado. Em uma configuração padrão do Controlador do Host subordinado, isto é usado para configurar a porta usada para a comunicação de gerenciamento nativo pelo Controlador do Host mestre.

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

Autônomo

Nome do arquivo de configuração do servidor para uso. Difere de --server-config e -c no sentido de que o arquivo original nunca é sobrescrito.

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

Domínio

Nome do arquivo de configuração do domínio para uso. Difere de --domain-config e -c no sentido de que o arquivo inicial nunca é sobrescrito.

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

Domínio

Nome do arquivo de configuração do host para uso. Difere de --host-config no sentido de que o arquivo inicial nunca é sobrescrito.

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

Autônomo, Domínio

Carrega propriedades do sistema a partir do URL fornecido.

--pc-address=<address>

Domínio

Endereço através do qual o controlador de processos aguarda pela comunicação dos processos que ele controla.

--pc-port=<port>

Domínio

Porta através da qual o controlador de processos aguarda pela comunicação dos processos que ele controla.

-S<name>[=<value>]

Autônomo

Define uma propriedade de segurança.

-secmgr

Autônomo, Domínio

Executa o servidor com um gerenciador de segurança instalado.

--server-config=<config>

Autônomo

Nome do arquivo de configuração do servidor para uso. O padrão é standalone.xml.

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

Autônomo, Domínio

Define a propriedade do sistema jboss.default.multicast.address, que é usada na configuração do endereço multicast nos elementos de associação de soquete nos arquivos de configuração. Isto deixa 230.0.0.4 como padrão, caso nenhum valor seja especificado.

-v, -V, --version

Autônomo, Domínio

Exibe a versão do servidor do aplicativo.

Atenção

Os arquivos de configuração que são fornecidos com o JBoss EAP são configurados para manipular o comportamento das opções (ex. -b, -u). Se você alterar os seus arquivos de configuração para não usar mais a propriedade do sistema controlada pela opção, a sua inserção ao comando de inicialização não terá efeito algum.

A.2. Argumentos para o utilitário add-user

A tabela a seguir descreve os argumentos disponíveis para a opção add-user.sh ou add-user.bat, que é um utilitário para a adição de novos usuários ao arquivo de propriedades para a autenticação inicial.

Tabela A.2. Argumentos do Comando Add-user

Argumento da Linha de ComandoDescrição

-a

Este argumento especifica como criar um usuário no realm do aplicativo. Se omitido, o padrão é criar um usuário no realm de gerenciamento.

-dc <value>

Este argumento especifica o diretório de configuração do domínio que conterá os arquivos de propriedades. Se omitido, o diretório padrão será EAP_HOME/domain/configuration/.

-sc <value>

Este argumento especifica o diretório de configuração alternativo do servidor autônomo que conterá os arquivos de propriedades. Se omitido, o diretório padrão será EAP_HOME/standalone/configuration/.

-up, --user-properties <value>

Este argumento especifica o nome do arquivo de propriedades alternativo do usuário. Ele pode ser um caminho absoluto ou pode ser um nome de arquivo usado em conjunto com o argumento -sc ou -dc que especifica o diretório de configuração alternativo.

-g, --group <value>

Lista separada por vírgulas dos grupos a serem atribuídos a este usuário.

-gp, --group-properties <value>

Este argumento especifica o nome do arquivo de propriedades alternativo do grupo. Ele pode ser um caminho absoluto ou pode ser um nome de arquivo usado em conjunto com o argumento -sc ou -dc que especifica o diretório de configuração alternativo.

-p, --password <value>

Senha do usuário.

-u, --user <value>

Nome do usuário. Somente caracteres alfanuméricos e os seguintes símbolos são válidos: ,./=@\.

-r, --realm <value>

Nome do realm usado para proteger as interfaces de gerenciamento. Se omitido, o padrão será ManagementRealm.

-s, --silent

Executa o script add-user sem saída para o console.

-e, --enable

Habilita o usuário.

-d, --disable

Desabilita o usuário.

-cw, --confirm-warning

Confirma avisos automaticamente no modo interativo.

-h, --help

Exibe informações de uso para o script add-user.

A.3. Atributos de interface

Tabela A.3. Valores e Atributos da Interface

Elementos da InterfaceDescrição

qualquer

Elemento indicando que parte dos critérios de seleção para uma interface deve ser tal que atenda pelo menos um critério, mas não necessariamente todos, do conjunto aninhado.

any-address

Elemento vazio inidicando que os soquetes usando esta interface devem ser associados a um endereço curinga. O endereço curinga IPv6 (::) será usado a não ser que a propriedade do sistema java.net.preferIPv4Stack seja definida como verdadeira e, neste caso, o endereço curinga IPv4 (0.0.0.0) é usado. Se um soquete estiver associado a um endereço anylocal IPv6 em uma máquina em pilha dupla, ele pode aceitar ambos os tráfegos, IPv6 e IPv4; mas, se estiver associado a um endereço anylocal IPv4 (IPv4-mapped), ele pode aceitar somente o tráfego IPv4.

inet-address

Seja um endereço IP em IPv6 ou uma anotação decimal com ponto IPv4, ou um nome de host que possa ser resolvido como um endereço IP.

link-local-address

Elemento vazio indicando que parte dos critérios de seleção para uma interface deve ser se um endereço associado a ele é link-local ou não.

loopback

Elemento vazio indicando que parte dos critérios de seleção para uma interface deve ser se trata-se de uma interface loopback ou não.

loopback-address

Endereço de loopback que pode não ser configurado na interface de loopback do computador. Difere-se do tipo de endereço inet em que o valor fornecido será usado mesmo que nenhum NIC que tenha o endereço IP associado a ele possa ser encontrado.

multicast

Elemento vazio indicando que parte dos critérios de seleção para uma interface deve ser se oferece suporte para multicast ou não.

nic

Nome de uma interface de rede (ex. eth0, eth1, lo).

nic-match

Expressão regular através da qual os nomes das interfaces de rede disponíveis na máquina podem ser correspondidos para encontrar uma interface aceitável.

not

Elemento indicando que parte dos critérios de seleção para uma interface deve ser tal que não atenda a critério algum do conjunto aninhado.

point-to-point

Elemento vazio indicando que parte dos critérios de seleção para uma interface deve ser se trata-se de uma interface ponto a ponto ou não.

public-address

Elemento vazio indicando que parte dos critérios de seleção para uma interface deve ser se possui um endereço publicamente roteável ou não.

site-local-address

Elemento vazio indicando que parte dos critérios de seleção para uma interface deve ser se um endereço associado a ele é site-local ou não.

subnet-match

Endereço IP de rede e o número de bits no prefixo da rede de endereço, escrito em notação slash (ex. 192.168.0.0/16).

up

Elemento vazio indicando que parte dos critérios de seleção para uma interface deve ser se está ativo no momento.

virtual

Elemento vazio indicando que parte dos critérios de seleção para uma interface deve ser se trata-se de uma interface virtual ou não.

A.4. Atributos da Associação de Soquete

Tabela A.4. Atributos da Associação de Soquete

AtributosDescrição

client-mappings

Especifica os mapeamentos de clientes para esta associação de soquete. Um cliente conectando a este soquete deve usar o endereço de destino especificado no mapeamento que corresponde a sua interface de saída desejada. Isto permite que as topologias de rede avançadas que usam conversão de endereço de rede ou possuem associações em múltiplas interfaces de rede funcionem. Cada mapeamento deve ser avaliado em ordem declarada, com a primeira correspondência bem-sucedida usada para determinar o destino.

fixed-port

Determina se o valor de porta deve manter-se fixo mesmo se os deslocamentos numéricos forem aplicados a outros soquetes no grupo de soquetes.

interface

Nome da interface com a qual o soquete deve ser associado ou, para soquetes multicast, a interface na qual ele deve aguardar por comunicação. Esta deve ser uma das interfaces declaradas. Se não estiver definido, o valor do atributo default-interface do grupo de associação de soquetes será usado.

multicast-address

Endereço multicast através do qual o soquete deve receber tráfego muticast. Se não especificado, o soquete não será configurado para receber multicast.

multicast-port

Porta através da qual o soquete deve receber tráfego multicast. Deve ser configurada caso o 'multicast-address' esteja configurado.

name

Nome do soquete. Serviços com necessidade de acessar as informações de configuração do soquete o encontrarão usando este nome. Este atributo é necessário.

port

Número de porta com o qual o soquete deve ser associado. Observe que este valor pode ser substituído se os servidores aplicarem um deslocamento de porta para incrementar ou diminuir todos os valores de porta.

A.5. Associações de Soquete Padrão

Tabela A.5. Associações de Soquete Padrão

NomePortaPorta MulticastDescriçãoGrupos de Associação de Soquete

ajp

8009

 

Protocolo Apache JServ. Usado para clusterização HTTP e balanceamento de carga.

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

http

8080

 

Porta padrão para aplicativos web implantados.

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

https

8443

 

Conexão SSL criptografada entre aplicativos web implantados e clientes.

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

iiop

3528

 

Serviços CORBA para transações JTS e outros serviços dependentes de ORB.

full-sockets, full-ha-sockets

iiop-ssl

3529

 

Serviços CORBA criptografados por SSL.

full-sockets, full-ha-sockets

jgroups-mping

 

45700

Multicast. Usado para descobrir a associação inicial em um cluster HA.

ha-sockets, full-ha-sockets

jgroups-tcp

7600

 

Descoberta unicast de máquinas em clusters HA usando TCP.

ha-sockets, full-ha-sockets

jgroups-tcp-fd

57600

 

Usado para a detecção de falhas HA sobre o TCP.

ha-sockets, full-ha-sockets

jgroups-udp

55200

45688

Descoberta multicast de máquinas em clusters HA usando UDP.

ha-sockets, full-ha-sockets

jgroups-udp-fd

54200

 

Usado para detecção de falhas HA sobre o UDP.

ha-sockets, full-ha-sockets

management-http

9990

 

Usado para comunicação HTTP com a camada de gerenciamento.

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

management-https

9993

 

Usado para comunicação HTTPS com a camada de gerenciamento.

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

modcluster

 

23364

Porta multicast para a comunicação entre o JBoss EAP e o balanceador de carga HTTP.

ha-sockets, full-ha-sockets

txn-recovery-environment

4712

 

Gerenciador de recuperação de transação JTA.

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

txn-status-manager

4713

 

Gerenciador de transação JTA / JTS.

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





Revised on 2017-02-17 06:02:24 EST

Nota 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.