Guia de Migração [Esta é uma tradução automática]
Para usar com Red Hat JBoss Enterprise Application Platform 7,1 [Esta é uma tradução automática]
Resumo
Capítulo 1. Introdução [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
1.1. Sobre Red Hat JBoss Enterprise Application Platform 7 [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Red Hat JBoss Enterprise Application Platform 7 (JBoss EAP) é uma plataforma de middleware baseada em padrões abertos e compatível com a especificação Java Enterprise Edition 7.
O JBoss EAP oferece uma estrutura modular que permite a habilitação de serviços apenas quando necessário, melhorando a velocidade da 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 APIs e estruturas para o desenvolvimento rápido de aplicativos Java EE seguros e escaláveis.
1.2. Sobre o Guia de Migração [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
A finalidade deste guia é documentar as alterações necessárias para executar e implantar com êxito Red Hat JBoss Enterprise Application Platform 6 aplicações em Red Hat JBoss Enterprise Application Platform 7. Ele fornece informações sobre os novos recursos disponíveis nesta liberação, os recursos reprovados e não suportados e quaisquer atualizações de configuração de aplicativo e servidor que possam ser necessárias para evitar mudanças no comportamento do aplicativo.
Também fornece informações sobre ferramentas que podem ajudar na migração, como Kit de Ferramentas de Migração de Aplicativos Red Hat, que simplifica a migração de aplicativos Java e Ferramenta de Migração do JBoss Server, que atualiza a configuração do servidor.
Uma vez que o aplicativo foi implementado com êxito e esta sendo executado, pode-se fazer planos para atualizar componentes individuais para utilizar as novas funções e recursos de JBoss EAP 7.
Se você planeja migrar seus aplicativos do JBoss EAP 5 diretamente para o JBoss EAP 7, veja Migrando de versões mais antigas do JBoss EAP.
1.3. Sobre os Upgrades e as Migrações [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Lançamentos Principais [Esta é uma tradução automática]
Uma grande atualização ou migração é necessária quando um aplicativo é movido de um lançamento principal para outro, por exemplo, do JBoss EAP 6.4 para o JBoss EAP 7.0. Se um aplicativo seguir as especificações do Java EE, não acessar APIs reprovadas e não contiver código proprietário, pode ser possível executar o aplicativo no JBoss EAP 7 sem nenhuma alteração no código do aplicativo. No entanto, a configuração do servidor foi alterada no JBoss EAP 7 e requer migração. Esse tipo de migração é abordado neste guia.
Updates de Manutenção [Esta é uma tradução automática]
O JBoss EAP fornece periodicamente lançamentos pontuais, que são pequenas atualizações que incluem correções de bugs, correções de segurança e novos recursos. Informações sobre as alterações feitas em uma liberação pontual estão documentadas neste guia e no Notas de versão 7.1.0.
Você pode usar a Ferramenta de Migração do JBoss Server para atualizar automaticamente de um lançamento pontual para outro, por exemplo, do JBoss EAP 7.0 para o JBoss EAP 7.1. Para obter informações sobre como configurar e executar a ferramenta, consulte Usando a Ferramenta de Migração do JBoss Server.
Se preferir, você pode executar uma atualização manual da configuração do servidor. Instruções sobre como realizar uma atualização manual estão documentadas em Atualizando o JBoss EAP no JBoss EAP Guia de patch e atualização.
Patches Cumulativos [Esta é uma tradução automática]
O JBoss EAP também fornece periodicamente patches cumulativos que contêm correções de bug e segurança. Os patches cumulativos aumentam a liberação pelo último dígito, por exemplo, de 7.1.0 para 7.1.1. A instalação do patch é endereçada no JBoss EAP Guia de patch e atualização.
1.4. Sobre o Uso do EAP_Home neste Documento [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Neste documento, a variável EAP_HOME é usado para denotar o caminho para a instalação do JBoss EAP. Substitua esta variável pelo caminho atual para a sua instalação do JBoss EAP.
-
Se você instalou o JBoss EAP usando o método de instalação ZIP, o diretório de instalação é o
jboss-eap-7.1diretório onde você extraiu o arquivo ZIP. -
Se você instalou o JBoss EAP usando o método de instalação RPM, o diretório de instalação
/opt/rh/eap7/root/usr/share/wildfly/. Se você usou o instalador para instalar o JBoss EAP, o caminho padrão para
EAP_HOMEé${user.home}/EAP-7.1.0:-
Para o Red Hat Enterprise Linux, Solaris e HP-UX:
/home/USER_NAME/EAP-7.1.0/ -
Para o Microsoft Windows:
C:\Users\USER_NAME\EAP-7.1.0\
-
Para o Red Hat Enterprise Linux, Solaris e HP-UX:
Se você usou o instalador do JBoss Developer Studio para instalar e configurar o servidor JBoss EAP, o caminho padrão para
EAP_HOMEé${user.home}/jbdevstudio/runtimes/jboss-eap:-
Para o Red Hat Enterprise Linux:
/home/USER_NAME/jbdevstudio/runtimes/jboss-eap/ -
Para o Microsoft Windows:
C:\Users\USER_NAME\jbdevstudio\runtimes\jboss-eapouC:\Documents and Settings\USER_NAME\jbdevstudio\runtimes\jboss-eap\
-
Para o Red Hat Enterprise Linux:
EAP_HOME não é uma variável de ambiente. JBOSS_HOME é a variável de ambiente usada em scripts.
Capítulo 2. Preparação para a Migração [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
2.1. Visão Geral da Preparação [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
No JBoss EAP 7, foi feito um esforço para fornecer compatibilidade retroativa para os aplicativos do JBoss EAP 6. No entanto, se seu aplicativo usar recursos que foram reprovados ou a funcionalidade que foi removida do JBoss EAP 7, talvez seja necessário fazer alterações no código do aplicativo.
Além disso, várias coisas mudaram nesta versão que podem impactar a implantação de aplicativos do JBoss EAP 7. É recomendável que você faça alguma pesquisa e planejamento antes de tentar migrar seu aplicativo.
- Familiarize-se com o recursos do Java EE 7.
- Reveja O que há de novo no JBoss EAP 7.
- Revise a lista de recursos obsoletos e sem suporte.
- Revise o material no JBoss EAP 7 Guia de Introdução.
- Dê uma olhada no ferramentas que podem ajudar com tarefas de migração.
Depois que você se familiarizar com as alterações dos recursos, com os materiais de desenvolvimento e as ferramentas que podem auxiliar os seus eforços de migração, você pode começar a avaliar os seus aplicativos e a configuração do seu servidor para determinar as alterações necessárias para a execução do JBoss EAP 7.
2.2. Revise os Recursos do Java EE 7 [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
O Java EE 7 inclui diversas melhorias para facilitar o desenvolvimento e a execução dos aplicativos com muitos recursos em nuvens públicas e privadas. Ele incorpora novos recursos e os padrões mais recentes, como HTML5, WebSocket, JSON, Batch e Concurrency Utilities. As atualizações incluem JPA 2.1, JAX-RS 2.0, Servlet 3.1, Expression Language 3.0, JMS 2.0. JSF 2.2, EJB 3.2, CDI 1.2 e Bean Validation 1.1.
Você pode encontrar mais informações sobre o Java EE 7, incluindo tutoriais, no site da Oracle: Java EE em um relance
2.3. Revise O Que Há de Novo no JBoss EAP 7 [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
O JBoss EAP 7 inclui algumas melhorias e upgrades importantes com relação ao último lançamento.
- Java EE 7
- O JBoss EAP 7 é uma implementação certificada do Java EE 7, atendendo tanto ao Perfil da Web quanto às especificações completas da plataforma. Também inclui suporte para as últimas iterações do CDI 1.2 e do Web Sockets 1.1.
- Undertow
- O Undertow é um servidor web eficaz, flexível e leve que faz parte do JBoss EAP 7, substituindo o JBoss Web. Escrito em Java, ele foi designado para máxima escalabilidade e produtividade e fornece suporte às tecnologias da web mais recentes, como o novo padrão HTTP/2.
- Apache ActiveMQ Artemis
- O Apache ActiveMQ Artemis é o novo provedor de mensagens interno do JBoss EAP 7. Baseado na doação de código do HornetQ, este subprojeto de Apache fornece um desempenho excelente baseado em uma arquitetura não bloqueadora comprovada.
- IronJacamar 1.2
- O IronJacamar mais recente fornece um suporte estável e com muitos recursos ao JCA e DataSources.
- JBossWS 5
- A quinta geração do JBossWS é um grande avanço, trazendo novos recursos e melhorias de desempenho para os serviços web do JBoss EAP 7.
- Alterações SPI RESTEasy [Esta é uma tradução automática]
- O JBoss EAP 7 inclui a última geração de RESTEasy. Ele vai além das APIs REST Java EE padrão (JAX-RS 2.0), fornecendo várias extensões úteis, como JSON Web Encryption, Jackson, JSON-P e Jettison.
- OpenJDK ORB
- O JBoss EAP 7 substituiu a implementação do JacORB IIOP com uma ramificação downstream do OpenJDK ORB, gerando melhor interoperabilidade para o JVM ORB e o Java EE RI.
- Clusterização Repleta de Recursos
- O suporte de clusterização foi altamente refatorado no JBoss EAP 7 e inclui várias APIs públicas para o acesso de aplicativos.
- Introdução [Esta é uma tradução automática]
- Ao utilizar o upgrade do HTTP, o JBoss EAP 7 mudou praticamente todos os protocolos para serem multiplexados via duas portas HTTP apenas: uma porta de gerenciamento (9990) e uma porta do aplicativo (8080).
- Registro em Log Avançado
- Agora a API de gerenciamento fornece suporte para a habilidade de listar e visualizar os arquivos de log disponíveis em um servidor, ou até mesmo definir formatadores personalizados além do formatador padrão. A configuração do registro em log da implantação também foi amplamente melhorada.
Para uma lista completa dos novos recursos introduzidos no JBoss EAP 7.0, veja Novos recursos e aprimoramentos no JBoss EAP Notas de versão 7.0.0.
Mudanças de Configuração de Mensagens no JBoss EAP 7.1 [Esta é uma tradução automática]
- Élitro
- O Elytron, baseado no projeto WildFly Elytron, é o novo framework de segurança do JBoss EAP 7.1. Ele é projetado para unificar a segurança em todo o servidor de aplicativos.
- Mudanças no gerenciamento de JMX [Esta é uma tradução automática]
-
O console de gerenciamento foi aprimorado para fornecer a capacidade de configurar mais subsistemas, fornecer
transactionsubsistema e métricas de recurso de transação, além de gerenciar muitas configurações adicionais. - Mudanças no gerenciamento de JMX [Esta é uma tradução automática]
-
A CLI de gerenciamento fornece suporte aprimorado para resposta e anexos de arquivo, configuração de módulo e suporte a depuração através do
echo-commandargumento.
Para a lista completa dos novos recursos introduzidos no JBoss EAP 7.1, veja Novos recursos e aprimoramentos no Notas de versão 7.1.0 no Portal do Cliente Red Hat.
2.4. Verifique a lista de recursos preteridos e sem suporte [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Antes de migrar seu aplicativo para o JBoss EAP 7, esteja ciente de que alguns recursos que estavam disponíveis em versões anteriores do JBoss EAP podem ser preteridos ou não mais suportados.
O suporte para algumas tecnologias foi removido devido ao alto custo de manutenção, pouco interesse da comunidade e soluções alternativas muito melhores. O que segue é um breve resumo de alguns dos recursos sem suporte.
- Migrar de beans de entidade para JPA [Esta é uma tradução automática]
- EJB entity beans não são mais suportados. Caso seu aplicativo utilizar EJB entity beans, você deve migrar o código para usar JPA, que oferece uma API muito mais eficiente e flexível.
- JAX-RPC
- Como JAX-WS offerece uma solução muito mais precisa e completa, o código escrito para JAX-RPC deve ser migrado para utilizar JAX-WS.
- JSR-88
- A especificação de API de implantação de aplicativos Java EE (JSR-88), que definia um contrato para habilitar ferramentas de múltiplos fornecedores para configurar e implantar aplicativos em qualquer produto de plataforma Java EE, não foi amplamente adotada. Você deve utilizar outra opção do JBoss EAP com suporte para implantação de aplicativos, como o console de gerenciamento, a CLI de gerenciamento, o escâner de implantação ou Maven.
- Configurando um Adaptador de Recursos JMS Genérico [Esta é uma tradução automática]
- No JBoss EAP 7.0, a capacidade de configurar um adaptador de recursos JMS genérico para conectar-se a um provedor JMS não é suportada.
- No JBoss EAP 7.1. a capacidade de configurar um adaptador de recursos JMS genérico para conectar-se a um provedor JMS é suportada.
Para obter uma lista completa de recursos obsoletos e não suportados no JBoss EAP 7.0, consulte Funcionalidade não suportada e descontinuada no JBoss EAP Notas de versão 7.0.0 no Portal do Cliente Red Hat.
Para obter uma lista completa de recursos obsoletos e não suportados no JBoss EAP 7.1, consulte Funcionalidade não suportada e descontinuada no JBoss EAP Notas de versão 7.1.0 no Portal do Cliente Red Hat.
2.5. Verifique a documentação de introdução do JBoss EAP [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Certifique-se de revisar o JBoss EAP Guia de Introdução. Contém as seguintes informações importantes:
- Como baixar e instalar o JBoss EAP 7
- Como baixar e instalar o Red Hat JBoss Developer Studio
- Como configurar o Maven para seu ambiente de desenvolvimento, gerenciar dependências de projetos e configurar seus projetos para utilizar artefatos da Estrutura de Produtos (BOM) do JBoss EAP
- Como baixar e executar os aplicativos de exemplo de início rápido que são enviados com o produto.
2.6. Análise e Planejamento de Migração [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Cada configuração de aplicativo e servidor é exclusiva e você deve entender completamente os componentes e a arquitetura do aplicativo existente e da plataforma do servidor antes de tentar a migração. Seu plano de migração deve incluir um roteiro detalhado para testes e distribuição para produção que leve em consideração as informações a seguir.
- Identifica as pessoas responsáveis pela migração
- Identifique as partes interessadas, gerentes de projeto, desenvolvedores, administradores e outras pessoas responsáveis pela migração.
- Verifica a configuração da plataforma do servidor de aplicativos e hardware
Analisa o servidor de aplicativos existente e configurações de plataforma para determinar como eles são impactados pelas alterações de recursos no JBoss EAP 7. A análise deve incluir os seguintes itens:
- Sistemas operacionais e versões
- Banco de dados utilizados pelos aplicativos
- Servidores da Web
- Arquitetura de segurança
- Número e tipo de processadores
- Quantidade de memória
- Quantidade de armazenamento no disco físico
- Migrar dados de mensagem [Esta é uma tradução automática]
- Outros componentes que podem ser afetados pela migração
- Verifique o ambiente de produção atual
Você deve planejar a criação do ambiente de produção o mais semelhante quanto possível para testar e preparar o processo de migração.
- Leve em conta quaisquer configurações de cluster. Vejo Atualizando um Cluster no JBoss EAP Guia de patch e atualização para obter mais informações sobre como migrar clusters.
- Caso você esteja atualmente executando em um domínio gerenciado amplo, considere uma abordagem gradual de migração.
- Determine se você precisa migrar algum banco de dados ou dados de mensagens
- Examine e entenda os aplicativos existentes
Examine minuciosamente o aplicativo JBoss EAP 6 existente. Esteja totalmente familiarizado com sua arquitetura, funções, recursos e componentes, incluindo:
- A versão JVM
- Integração com outros componentes middleware de servidores dos aplicativos da Red Hat
- Integração com software proprietário de terceiros
- Utilização de recursos preteridos que precisarão ser substituídos
- Configuração de aplicativos incluindo descritor de implementação, JNDI, persistência, configuração JDBC e pooling, tópicos JMS e filas, e registro em log.
Identificar quaisquer incompatibilidades de código ou configuração que necessitarão modificações durante a migração para JBoss EAP 7.
- Crie um plano teste detalhado
- O plano deve incluir teste de regressão e requisitos de critérios de aceitação.
- Deve também incluir teste de desempenho.
- Estabeleça um ambiente de teste tão semelhante quanto possível do ambiente de produção para testar a migração antes do lançamento para produção.
- Tenha certeza de que criou um backup e um plano de backup!
- Revise o conteúdo nos Guias de Migração [Esta é uma tradução automática]
- Avalie as competências da equipe de desenvolvimento e planeje treinamento ou auxílio de consultoria suplementar.
- Esteja ciente de que serão necessários hardwares suplementares e outros recursos para preparar e testar durante o processo de migração até que a tarefa esteja completa.
- Determine se qualquer treinamento formal será necessário. Caso afirmativo, adicione ao cronograma.
- Execute o plano
- Reúna os recursos necessários e implemente o plano de migração.
Antes de fazer quaisquer modificações em seus aplicativos, tenha certeza de que criou uma cópia de backup.
2.7. Faça um backup dos dados importantes e verifique o estado do servidor [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Antes de migrar seu aplicativo, você precisa estar ciente dos possíveis problemas:
-
A migração pode remover pastas temporárias. Qualquer implementação armazenada no
data/content/O diretório deve ser submetido a backup antes da migração e restaurado após a conclusão. Caso contrário, o servidor não será iniciado devido ao conteúdo ausente. -
Antes da migração, manipule todas as transações abertas e exclua
data/tx-object-store/diretório de transação. -
Os dados do temporizador persistente
data/timer-service-datadeve ser verificado para determinar se é compatível. Antes da migração, revise odeployment-*arquivos nesse diretório para determinar quais cronômetros ainda estão em uso.
Certifique-se também de fazer o backup das configurações do servidor atual e aplicativos antes de começar.
2.8. Migrando uma instalação RPM [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Não é fornecido suporte para mais de uma instância de RPM instalada de JBoss EAP em um único Servidor Red Hat Enterprise Linux. Como resultado, nós recomendamos que você migre sua instalação do JBoss EAP para uma nova máquina quando migrar para JBoss EAP 7.
Quando migrar uma instalação RPM de JBoss EAP a partir do JBoss EAP 6 para JBoss EAP 7, certifique-se que JBoss EAP 7 esteja instalado em uma máquina que não tem uma instalação RPM de JBoss EAP existente.
Para instalar o JBoss EAP 7 usando RPMs, veja o JBoss EAP Guia de instalação.
O aviso de migração neste guia também se aplica à migração de instalações RPM do JBoss EAP, mas você pode precisar alterar algumas etapas (como iniciar o JBoss EAP) para adequar-se a uma instalação RPM em comparação a uma instalação ZIP ou de instalação.
2.9. Migrar o JBoss EAP para ser executado como um serviço [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Se você executar o JBoss EAP 6 como um serviço, não deixe de revisar Configurando o JBoss EAP para Executar como um Serviço no JBoss EAP Guia de instalação para obter instruções de configuração atualizadas para o JBoss EAP 7.
Capítulo 3. Ferramentas para auxiliar a migração [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
3.1. Use o Red Hat Application Migration Toolkit para analisar aplicativos para migração [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
O Red Hat Application Migration Toolkit (RHAMT) é um conjunto de ferramentas extensível e personalizável baseado em regras que ajuda a simplificar a migração de aplicativos Java. Ele analisa as APIs, tecnologias e arquiteturas usadas pelos aplicativos que você planeja migrar e fornece relatórios detalhados de migração para cada aplicativo. Esses relatórios fornecem as informações a seguir.
- Explicações detalhadas das alterações necessárias para migração
- Se as alterações relatadas são obrigatórias ou opcionais
- Se as alterações relatadas são complexas ou triviais
- Links para códigos que necessitam de alterações para migração
- Dicas e links de informação sobre como fazer as alterações necessárias
- Uma estimativa do nível de esforço para cada problema de migração encontrado e o esforço total estimado para migrar o aplicativo
Você pode usar o RHAMT para analisar o código e a arquitetura de seus aplicativos do JBoss EAP 6 antes de migrá-los para o JBoss EAP 7. O conjunto de regras RHAMT para migração do JBoss EAP 6 para o JBoss EAP 7 relata descritores XML e código e parâmetros específicos da aplicação. precisam ser substituídos por uma configuração alternativa ao migrar para o JBoss EAP 7.
Para obter mais informações sobre como usar o Red Hat Application Migration Toolkit para analisar seus aplicativos do JBoss EAP 6, consulte o Red Hat Application Migration Toolkit Guia de Introdução.
3.2. Utilize a ferramenta de migração do servidor JBoss para migrar as configurações de servidor [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
A Ferramenta de Migração do JBoss Server é o método preferido para atualizar a configuração do seu servidor para incluir os novos recursos e configurações no JBoss EAP 7 enquanto mantém sua configuração existente. A Ferramenta de Migração do JBoss Server lê seus arquivos de configuração existentes do servidor JBoss EAP e adiciona configurações para quaisquer novos subsistemas, atualiza as configurações de subsistema existentes com novos recursos e remove quaisquer configurações de subsistema obsoletas.
Utilize a ferramenta de migração do servidor JBoss para migrar as configurações de servidor [Esta é uma tradução automática]
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
A Ferramenta de Migração do JBoss Server vem com o JBoss EAP 7.1, portanto, não é necessário nenhum download separado ou instalação. Você executa a ferramenta executando o
jboss-server-migrationroteiro localizado noEAP_HOME/bindiretório. Para obter mais informações sobre como configurar e executar a ferramenta, consulte Usando a Ferramenta de Migração do JBoss Server.É recomendado que você use esta versão da Ferramenta de Migração do JBoss Server para migrar a configuração do seu servidor para o JBoss EAP 7.1, já que esta versão da ferramenta é suportado.
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
Para migração para o JBoss EAP 7.0, você deve baixar a última distribuição binária da Ferramenta de Migração do JBoss Server a partir do Ferramenta de Migração do Servidor GitHub. Para obter informações sobre como executar a ferramenta, consulte a Ferramenta de Migração do JBoss Server. Guia de usuario.
ImportanteEsta versão da Ferramenta de Migração do JBoss Server não é suportada. Em vez de usar esta versão para migrar a configuração do seu servidor para o JBoss EAP 7.0, é recomendado que você use o versão suportada da ferramenta para migrar sua configuração de servidor diretamente para o JBoss EAP 7.1.
Capítulo 4. Mudanças de configuração de servidor [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
4.1. Mudanças na instalação do RPM [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
No JBoss EAP 6, o caminho padrão para a instalação do RPM era o /usr/share/jbossas/ diretório.
O JBoss EAP 7 foi construído para Biblioteca de coleções de software convenções. O diretório raiz de coleções de software é normalmente localizado no /opt/ diretório para evitar possíveis conflitos entre as Coleções de Software ea instalação do sistema básico. O uso do /opt/ O diretório é recomendado pelo Filesystem Hierarchy Standard (FHS). Como resultado, o caminho padrão para a instalação do RPM foi alterado para /opt/rh/eap7/root/usr/share/wildfly/ no JBoss EAP 7.
4.2. Opções de migração de configuração de servidor [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Para migrar a configuração do servidor do JBoss EAP 6 para o JBoss EAP 7, você pode usar o Ferramenta de Migração do JBoss Server ou você pode executar uma migração manual com a ajuda do CLI de gerenciamento migrate Operação.
Alterações de configurações de servidor EJB [Esta é uma tradução automática]
A Ferramenta de Migração do JBoss Server é o método preferido para atualizar sua configuração para incluir os novos recursos e configurações no JBoss EAP 7, enquanto mantém sua configuração existente. Para obter informações sobre como configurar e executar a ferramenta, consulte Usando a Ferramenta de Migração do JBoss Server.
Operação de migração da CLI de gerenciamento [Esta é uma tradução automática]
Você pode usar o CLI de gerenciamento migrate operação para atualizar o jacorb, messaging, e web subsistemas no arquivo de configuração do servidor do JBoss EAP 6 para permitir que eles sejam executados no novo release, mas esteja ciente de que o resultado não é uma configuração completa do JBoss EAP 7. Por exemplo:
-
A operação não atualiza o original
remoteconfigurações de protocolo e porta para o novohttp-remotinge novas configurações de porta agora usadas no JBoss EAP 7. - A configuração não inclui os novos subsistemas de JBoss EAP ou funcionalidades tais como implantações singleton clusterizadas ou desligamento ordenado.
- A configuração não inclui os novos recursos de Java EE 7 como processamento batch.
-
o
migrateoperação não migra oejb3configuração do subsistema. Para obter informações sobre possíveis problemas de migração do EJB, consulte Alterações na Configuração do Servidor EJB.
Para mais informações sobre como usar o migrate operação para migrar a configuração do servidor, consulte Operação de Migração do CLI de Gerenciamento.
4.3. Operação de migração da CLI de gerenciamento [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Você pode usar a CLI de gerenciamento para atualizar seus arquivos de configuração do servidor JBoss EAP 6 para executar no JBoss EAP 7. O CLI de gerenciamento migrate operação para atualizar automaticamente jacorb, messaging, e web subsistemas do release anterior para a nova configuração. Você também pode executar o describe-migration operação para o jacorb, messaging, e web subsistemas para revisar as alterações de configuração de migração propostas antes de executar a migração. Não há substitutos para o cmp, jaxr, ou threads subsistemas e devem ser removidos da configuração do servidor.
Vejo Opções de Migração de Configuração do Servidor para limitações do migrate Operação. A Ferramenta de Migração do JBoss Server é o método preferido para atualizar sua configuração para incluir os novos recursos e configurações no JBoss EAP 7, enquanto mantém sua configuração existente. Para obter informações sobre como configurar e executar a ferramenta, consulte Usando a Ferramenta de Migração do JBoss Server.
| Subsistema JBoss EAP 6 | Subsistema JBoss EAP 7 | Operação de migração da CLI de gerenciamento [Esta é uma tradução automática] |
|---|---|---|
|
cmp |
sem substitução |
remove |
|
jacorb |
iiop-openjdk |
migrate |
|
jaxr |
sem substitução |
remove |
|
messaging |
messaging-activemq |
migrate |
|
threads |
sem substitução |
remove |
|
web |
undertow |
migrate |
Inicie o servidor e a CLI de gerenciamento
Siga as etapas abaixo para atualizar sua configuração do servidor JBoss EAP 6 para executar em JBoss EAP 7.
- Antes de começar, revise Faça backup de dados importantes e revise o estado do servidor. Ele contém informações importantes sobre como garantir que o servidor esteja em bom estado e que os arquivos apropriados sejam armazenados em backup.
Inicie o servidor JBoss EAP 7 com a configuração do JBoss EAP 6.
- Faça o backup dos arquivos do servidor JBoss EAP 7.
Copie o arquivo de configuração da versão anterior no diretório do JBoss EAP 7.
cp EAP6_HOME/standalone/configuration/standalone-full.xml EAP7_HOME/standalone/configuration
$ cp EAP6_HOME/standalone/configuration/standalone-full.xml EAP7_HOME/standalone/configurationCopy to Clipboard Copied! Toggle word wrap Toggle overflow Navegue até o diretório de instalação do JBoss EAP 7 e inicie o servidor com o
--start-mode=admin-onlyargumento.bin/standalone.sh -c standalone-full.xml --start-mode=admin-only
$ bin/standalone.sh -c standalone-full.xml --start-mode=admin-onlyCopy to Clipboard Copied! Toggle word wrap Toggle overflow NotaVocê verá o seguinte
org.jboss.as.controller.management-operationERROS no log do servidor quando você inicia o servidor. Esses erros são esperados e indicam que as configurações do subsistema legado devem ser removidas ou migradas para o JBoss EAP 7.- WFLYCTL0402: Subsystems [cmp] provided by legacy extension 'org.jboss.as.cmp' are not supported on servers running this version. Both the subsystem and the extension must be removed or migrated before the server will function.
- WFLYCTL0402: Subsystems [jacorb] provided by legacy extension 'org.jboss.as.jacorb' are not supported on servers running this version. Both the subsystem and the extension must be removed or migrated before the server will function.
- WFLYCTL0402: Subsystems [jaxr] provided by legacy extension 'org.jboss.as.jaxr' are not supported on servers running this version. Both the subsystem and the extension must be removed or migrated before the server will function.
- WFLYCTL0402: Subsystems [messaging] provided by legacy extension 'org.jboss.as.messaging' are not supported on servers running this version. Both the subsystem and the extension must be removed or migrated before the server will function.
- WFLYCTL0402: Subsystems [threads] provided by legacy extension 'org.jboss.as.threads' are not supported on servers running this version. Both the subsystem and the extension must be removed or migrated before the server will function.
- WFLYCTL0402: Subsystems [web] provided by legacy extension 'org.jboss.as.web' are not supported on servers running this version. Both the subsystem and the extension must be removed or migrated before the server will function.
Abra um novo terminal, navegue até o diretório de instalação do JBoss EAP 7 e inicie a CLI de gerenciamento usando o
--controller=remote://localhost:9999argumentos.bin/jboss-cli.sh --connect --controller=remote://localhost:9999
$ bin/jboss-cli.sh --connect --controller=remote://localhost:9999Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Migrar JacORB, Messaging e subsistemas Web
Para revisar as alterações de configuração que serão feitas no subsistema antes de executar a migração, execute o
describe-migrationOperação.o
describe-migrationoperação usa a seguinte sintaxe./subsystem=SUBSYSTEM_NAME:describe-migration
/subsystem=SUBSYSTEM_NAME:describe-migrationCopy to Clipboard Copied! Toggle word wrap Toggle overflow O exemplo a seguir descreve as mudanças de configuração feitas no JBoss EAP 6.4
standalone-full.xmlarquivo de configuração quando ele é migrado para o JBoss EAP 7. As entradas foram removidas da saída para melhorar a legibilidade e economizar espaço.Exemplo: operação describe-migration [Esta é uma tradução automática]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Execute o
migrateoperação para migrar a configuração do subsistema para o subsistema que a substitui no JBoss EAP 7. A operação usa a seguinte sintaxe./subsystem=SUBSYSTEM_NAME:migrate
/subsystem=SUBSYSTEM_NAME:migrateCopy to Clipboard Copied! Toggle word wrap Toggle overflow Notao
messagingsubsistemadescribe-migrationemigrateoperações permitem que você passe um argumento para configurar o acesso por clientes legados. Para obter mais informações sobre a sintaxe de comando, consulte Migração de Subsistema de Mensagens e Compatibilidade de Encaminhamento.Verifique o desfecho e o resultado do comando. Certifique-se que a operação foi completada com êxito e não há entradas de "migration-warning". Isto significa que a configuração de migração para o subsistema está completa.
Exemplo: operação de migração com êxito sem alertas [Esta é uma tradução automática]
/subsystem=messaging:migrate { "outcome" => "success", "result" => {"migration-warnings" => []} }/subsystem=messaging:migrate { "outcome" => "success", "result" => {"migration-warnings" => []} }Copy to Clipboard Copied! Toggle word wrap Toggle overflow Se você vir entradas de "avisos de migração" no log, isso indica que a migração da configuração do servidor foi concluída com êxito, mas não conseguiu migrar todos os elementos e atributos. Você deve seguir as sugestões fornecidas pelos "avisos de migração" e executar comandos CLI de gerenciamento adicionais para modificar essas configurações. O seguinte é um exemplo de um
migrateoperação que retorna "avisos de migração".Examplo: operação de migração com alertas [Esta é uma tradução automática]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NotaA lista de
migrateedescribe-migrationavisos para cada subsistema estão localizados no Material de referência no final deste guia.- Avisos de Operação da Migração do Subsistema Jacorb
- Avisos para a operação de migração de subsistema de mensagem [Esta é uma tradução automática]
- Avisos para a operação de migração de subsistema de mensagem [Esta é uma tradução automática]
Revise o arquivo de configuração de servidor para verificar se extensão, subsistema e espaço de nomes foram atualizados e as configurações dos subsistemas existentes foram migradas para o JBoss EAP 7.
NotaVocê deve repetir este processo para cada um dos
jacorb,messaging, ewebsubsistemas usando os seguintes comandos./subsystem=jacorb:migrate /subsystem=messaging:migrate /subsystem=web:migrate
/subsystem=jacorb:migrate /subsystem=messaging:migrate /subsystem=web:migrateCopy to Clipboard Copied! Toggle word wrap Toggle overflow Remova o
cmp,jaxr, ethreadssubsistemas e extensões da configuração do servidor.Ainda no prompt do CLI de gerenciamento, remova o obsoleto
cmp,jaxr, ethreadssubsistemas executando os seguintes comandos.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Você deve migrar o messaging, jacorb, e web subsistemas e remova o cmp, jaxr, e threads extensões e subsistemas antes que você possa reiniciar o servidor para operação normal. Se você precisar reiniciar o servidor antes de concluir esse processo, inclua o --start-mode=admin-only argumento na linha de comando do início do servidor. Isso permite que você continue com as alterações de configuração.
4.4. Alterações de registro [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
4.4.1. Alterações de prefixos dos registros de mensagens [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Os registros de mensagens são prefixados com o código do projeto para o subsistema que relata a mensagem. Os prefixos para todos os registros de mensagens foram alterados no JBoss EAP 7.
Para uma lista completa dos novos prefixos de código de projeto de mensagem de log usados no JBoss EAP 7, veja Códigos de Projeto Utilizados no JBoss EAP no JBoss EAP Guia de desenvolvimento.
4.4.2. Alterações do manipulador de console do criador de logs raiz [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
O criador de logs raiz do JBoss EAP 7.0 incluiu um manipulador de logs do console para todos os perfis de servidor de domínio e para todos os perfis independentes padrão, exceto o standalone-full-ha perfil. O criador de logs raiz do JBoss EAP 7.1 não inclui mais um manipulador de logs do console para os perfis de domínio gerenciados. O controlador host e o controlador de processo registram no console por padrão. Para obter a mesma funcionalidade que foi fornecida no JBoss EAP 7.0, veja Configurar um manipulador de log do console no Guia de configuração para o JBoss EAP.
4.5. Alterações de configurações do servidor web [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
4.5.1. Substituição do subsistema web com Undertow [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Undertow substitui o JBoss Web como o servidor web no JBoss EAP 7. Isso significa que o legado web A configuração do subsistema deve ser migrada para o novo JBoss EAP 7 undertow configuração do subsistema.
-
o
urn:jboss:domain:web:2.2o namespace de configuração do subsistema no arquivo de configuração do servidor foi substituído pelourn:jboss:domain:undertow:4.0namespace. -
o
org.jboss.as.webmódulo de extensão, localizado emEAP_HOME/modules/system/layers/base/, foi substituído peloorg.wildfly.extension.undertowmódulo de extensão.
Você pode usar o CLI de gerenciamento migrate operação para migrar o web subsistema para undertow no arquivo de configuração do servidor. No entanto, esteja ciente de que esta operação não é capaz de migrar todas as configurações do subsistema Web do JBoss. Se você vir entradas de "aviso de migração", deverá executar comandos CLI de gerenciamento adicionais para migrar essas configurações para Undertow. Para mais informações sobre o CLI de gerenciamento migrate operação, consulte Operação de Migração do CLI de Gerenciamento.
O seguinte é um exemplo do padrão web configuração do subsistema no JBoss EAP 6.
O seguinte é um exemplo do padrão undertow configuração do subsistema no JBoss EAP 7.
4.5.2. Migrar as condições de regravação do JBoss Web [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
O CLI de gerenciamento migrate operação não é capaz de migrar automaticamente as condições de reescrita. Eles são relatados como "avisos de migração" e você deve migrá-los manualmente. Você pode criar a configuração equivalente no JBoss EAP 7 usando Atributos e manipuladores de predicados inferiores.
O seguinte é um exemplo de um web configuração do subsistema no JBoss EAP 6 que inclui rewrite configuração.
Segue o Operação de Migração do CLI de Gerenciamento instruções para iniciar seu servidor e a CLI de gerenciamento, depois migrar web arquivo de configuração do subsistema usando o seguinte comando.
/subsystem=web:migrate
/subsystem=web:migrate
Os seguintes "avisos de migração" são relatados quando você executa o migrate operação na configuração acima.
Revise o arquivo de configuração do servidor e você verá a seguinte configuração para o undertow subsistema.
Configuração lado cliente e carregamento de classe [Esta é uma tradução automática]
Use a CLI de gerenciamento para criar o filtro para substituir a configuração de reconfiguração no undertow subsistema. Você deve ver "{" resultado "⇒" sucesso "}" para cada comando.
Revise o arquivo de configuração do servidor atualizado. O subsistema Web JBoss está agora completamente migrado e configurado no undertow subsistema.
Para obter mais informações sobre como configurar filtros e manipuladores usando a CLI de gerenciamento, consulte Configurando o Servidor da Web no JBoss EAP 7 Guia de configuração.
4.5.3. Migrar propriedades de sistemas JBoss Web [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Na versão anterior do JBoss EAP, as propriedades do sistema poderiam ser usadas para modificar o comportamento padrão do JBoss. Para obter informações sobre como configurar o mesmo comportamento no Undertow, consulte Referência de Migração de Propriedades do Sistema JBoss Web
4.5.4. Atualizar o padrão de cabeçalho do log de acesso [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Quando você migra do JBoss EAP 6.4 para o JBoss EAP 7.1, você pode achar que os logs de acesso não gravam mais os valores esperados "Referer" e "User-agent". Isto é porque o JBoss Web, que foi incluído no JBoss EAP 6.4, usou um padrão de %{headername}i no access-log para registrar um cabeçalho de entrada.
Exemplo: Access Log Format no JBoss EAP 6.4 [Esta é uma tradução automática]
<access-log pattern="%h %l %u %t "%T sec" "%r" %s %b "%{Referer}i" "%{User-agent}i""/>
<access-log pattern="%h %l %u %t "%T sec" "%r" %s %b "%{Referer}i" "%{User-agent}i""/>
Com a mudança para usar o Undertow no JBoss EAP 7.1, o padrão para um cabeçalho de entrada foi alterado para %{i,headername}.
Exemplo: Acesse o Formato Header no JBoss EAP 7.1 [Esta é uma tradução automática]
<access-log pattern="%h %l %u %t "%T sec" "%r" %s %b "%{i,Referer}" "%{i,User-Agent}""/>
<access-log pattern="%h %l %u %t "%T sec" "%r" %s %b "%{i,Referer}" "%{i,User-Agent}""/>
4.5.5. Migrar válvulas globais [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
As versões anteriores do JBoss EAP tinham suporte de válvulas. Válvulas são classes personalizadas inseridas na pipeline de processamento de solicitações para um aplicativo antes de filtros servlet para fazer alterações às solicitações ou executar processamento adicional.
- Válvula globais são inseridas na pipeline de processamento de solicitações de todos os aplicativos implantados e são configuradas no arquivo de configuração do servidor.
- Válvulas do autenticador autenticam as credenciais da solicitação.
-
As válvulas de aplicação personalizadas foram criadas ao estender
org.apache.catalina.valves.ValveBaseclasse e configurado no<valve>elemento dojboss-web.xmlarquivo descritor. Essas válvulas devem ser migradas manualmente.
Esta seção descreve como migrar válvulas globais. A migração de válvulas personalizadas e autenticadoras é coberta Migrar válvulas de aplicativos personalizados seção deste guia.
Undertow, que substitui JBoss Web no JBoss EAP 7, não suporta válvulas globais; porém, você pode conseguir funcionalidade semelhante utilizando os manipuladores Undertow. Undertow inclui um número de manipuladores integrados que fornecem funcionalidade comum. Também fornece a habilidade de criar manipuladores personalizados, que podem ser utilizados para substituir funcionalidade de válvula personalizada.
Se o seu aplicativo utilizar válvulas, você deve substituí-las com o código de manipulador Undertow adequado para obter a mesma funcionalidade quando você migrar para o JBoss EAP 7.
Para obter mais informações sobre como configurar manipuladores, consulte Configurando manipuladores no JBoss EAP 7 Guia de configuração.
Para obter mais informações sobre como configurar filtros, consulte Configurando Filtros no JBoss EAP 7 Guia de configuração.
Migrar válvulas globais [Esta é uma tradução automática]
A tabela a seguir lista as válvulas que foram fornecidas pelo JBoss Web no release anterior do JBoss EAP e o manipulador integrado Undertow correspondente. As válvulas do JBoss Web estão localizadas no org.apache.catalina.valves pacote.
| Válvula | Manipulador |
|---|---|
|
AccessLogValve |
io.undertow.server.handlers.accesslog.AccessLogHandler |
|
CrawlerSessionManagerValve |
io.undertow.servlet.handlers.CrawlerSessionManagerHandler |
|
ExtendedAccessLogValve |
io.undertow.server.handlers.accesslog.AccessLogHandler |
|
JDBCAccessLogValve |
Veja o |
|
RemoteAddrValve |
io.undertow.server.handlers.IPAddressAccessControlHandler |
|
RemoteHostValve |
io.undertow.server.handlers.AccessControlListHandler |
|
RemoteIpValve |
io.undertow.server.handlers.ProxyPeerAddressHandler |
|
RequestDumperValve |
io.undertow.server.handlers.RequestDumpingHandler |
|
RewriteValve |
Vejo Migrar as condições do JBoss Web Rewrite para instruções de como migrar essas válvulas manualmente. |
|
StuckThreadDetectionValve |
io.undertow.server.handlers.StuckThreadDetectionHandler |
Você pode usar o CLI de gerenciamento migrate operação para migrar automaticamente válvulas globais que atendam aos seguintes critérios:
- Elas estão limitadas às válvulas listadas na tabela anterior que não necessitam de processamento manual.
-
Eles devem ser definidos no
websubsistema do arquivo de configuração do servidor.
Para mais informações sobre o CLI de gerenciamento migrate operação, consulte Operação de Migração do CLI de Gerenciamento.
Procedimento de migração manual JDBCAccessLogValve
o org.apache.catalina.valves.JDBCAccessLogValve válvula é uma exceção à regra e não pode ser migrada automaticamente para io.undertow.server.handlers.JDBCLogHandler. Siga as etapas abaixo para migrar a seguinte válvula de exemplo.
- Crie um módulo de driver para o banco de dados que irá armazenar as entradas de registro.
Configure a fonte de dados para o banco de dados e adicione o driver à lista de drivers disponíveis no
datasourcessubsistema.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configurar um
expression-filternoundertowsubsistema com a seguinte expressão:jdbc-access-log(datasource=DATASOURCE_JNDI_NAME).<filters> <expression-filter name="jdbc-access" expression="jdbc-access-log(datasource='java:jboss/datasources/accessLogDS')" /> ... </filters><filters> <expression-filter name="jdbc-access" expression="jdbc-access-log(datasource='java:jboss/datasources/accessLogDS')" /> ... </filters>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.5.6. Alterações no comportamento do conjunto de cookies [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Especificações anteriores para Set-Cookie A sintaxe do cabeçalho de resposta HTTP, por exemplo, RFC2109 e RFC2965, permitia espaço em branco e outros caracteres separadores no valor do cookie quando o valor do cookie era citado. O JBoss Web no JBoss EAP 6.4 estava de acordo com as especificações anteriores e automaticamente citava um valor de cookie quando continha quaisquer caracteres separadores.
o RFC6265 especificação para Set-Cookie A sintaxe do cabeçalho de resposta HTTP indica que os valores de cookie no Set-Cookie O cabeçalho de resposta deve estar em conformidade com as restrições gramaticais específicas. Por exemplo, eles devem ser caracteres US-ASCII, mas não podem incluir CTRLs (controles), espaço em branco, aspas duplas, vírgulas, ponto e vírgula ou caracteres de barra invertida.
No JBoss EAP 7.0, antes do patch cumulativo Red Hat JBoss Enterprise Application Platform 7,0 atualização 08, Undertow não restringe esses caracteres inválidos e não cita cookies que continham os caracteres excluídos. Se você aplicar esse patch cumulativo ou um patch cumulativo mais recente, poderá ativar a validação de cookie compatível com RFC6265 definindo io.undertow.cookie.DEFAULT_ENABLE_RFC6265_COOKIE_VALIDATION propriedade do sistema para true.
No JBoss EAP 7.1, por padrão, Undertow não habilita a validação de cookie compatível com RFC6265. Ele cita cookies que contêm os caracteres excluídos. No JBoss EAP 7.1, você não pode usar o io.undertow.cookie.DEFAULT_ENABLE_RFC6265_COOKIE_VALIDATION propriedade do sistema para ativar a validação de cookie compatível com RFC6265. Em vez disso, você ativa a validação de cookie compatível com RFC6265 para um ouvinte HTTP, HTTPS ou AJP configurando o rfc6265-cookie-validation atributo de ouvinte para true. O valor padrão para este atributo é false. O exemplo a seguir ativa a validação de cookie compatível com RFC6265 para o ouvinte HTTP.
/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=rfc6265-cookie-validation,value=true)
/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=rfc6265-cookie-validation,value=true)
4.5.7. Alterações no comportamento de chamadas de método HTTP [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
O JBoss EAP 6.4, que incluía o JBoss Web como servidor web, permitia TRACE chamadas de método por padrão.
Undertow, que substitui o JBoss Web como o servidor web no JBoss EAP 7, não permite HTTP TRACE chamadas de método por padrão. Esta configuração é configurada usando o disallowed-methods atributo do http-listener elemento no undertow subsistema. Isso pode ser confirmado pela análise da saída dos seguintes read-resource comando. Observe que o valor para o disallowed-methods atributo é ["TRACE"].
Para ativar o HTTP TRACE chamadas de método no JBoss EAP 7 e posterior, você deve remover a entrada "TRACE" do disallowed-methods lista de atributos executando o seguinte comando.
/subsystem=undertow/server=default-server/http-listener=default:list-remove(name=disallowed-methods,value="TRACE")
/subsystem=undertow/server=default-server/http-listener=default:list-remove(name=disallowed-methods,value="TRACE")
Quando você executa o read-resource comando novamente, você vai notar o TRACE chamada de método não está mais na lista de métodos não permitidos.
Para obter mais informações sobre o comportamento padrão dos métodos HTTP, consulte Comportamento Padrão de Métodos HTTP no JBoss EAP Guia de configuração.
4.5.8. Mudanças no Comportamento do Módulo da Web Padrão no JBoss EAP 7.1 [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
No JBoss EAP 7.0, o contexto raiz de uma aplicação web foi desabilitado por padrão em mod_cluster.
Este não é mais o caso no JBoss EAP 7.1. Isso pode ter conseqüências inesperadas se você estiver esperando que o contexto raiz seja desativado. Por exemplo, as solicitações podem ser desviadas para nós indesejados ou um aplicativo particular que não deve ser exposto pode ser acessado inadvertidamente por meio de um proxy público. As localizações inferiores também são registradas com o balanceador de carga mod_cluster automaticamente, a menos que sejam explicitamente excluídas.
Use o seguinte comando CLI de gerenciamento para excluir ROOT do modcluster configuração do subsistema.
/subsystem=modcluster/mod-cluster-config=configuration:write-attribute(name=excluded-contexts,value=ROOT)
/subsystem=modcluster/mod-cluster-config=configuration:write-attribute(name=excluded-contexts,value=ROOT)
Use o seguinte comando da CLI de gerenciamento para desativar o aplicativo da web de boas-vindas padrão.
/subsystem=undertow/server=default-server/host=default-host/location=\/:remove /subsystem=undertow/configuration=handler/file=welcome-content:remove reload
/subsystem=undertow/server=default-server/host=default-host/location=\/:remove
/subsystem=undertow/configuration=handler/file=welcome-content:remove
reload
Para obter mais informações sobre como configurar o aplicativo da Web de boas-vindas padrão, consulte Configurar o aplicativo da Web de boas-vindas padrão no Guia de desenvolvimento para o JBoss EAP.
4.6. Alterações de configurações do servidor JGroups [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
4.6.1. JGroups é pre-definido para uma interface de rede privada [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Na configuração padrão do JBoss EAP 6, os JGroups usaram o public interface definida no <interfaces> seção do arquivo de configuração do servidor.
Como é uma prática recomendada usar uma interface de rede dedicada, o JGroups agora usa o novo padrão private interface que é definida no <interfaces> seção do arquivo de configuração do servidor no JBoss EAP 7.
4.6.2. Alterações de Canais JGroups [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
O JGroups fornece suporte de comunicação de grupo para serviços de alta disponibilidade na forma de canais do JGroups. O JBoss EAP 7 apresenta <channel> elementos para o jgroups subsistema no arquivo de configuração do servidor. Você pode adicionar, remover ou alterar a configuração de canais do JGroups usando a CLI de gerenciamento.
Para obter mais informações sobre como configurar JGroups, consulte Comunicação de Cluster com JGroups no JBoss EAP Guia de configuração.
4.7. Alterações de configuração de servidor Infinispan [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
4.7.1. Alterações de configurações de cachês por padrão de Infinispan [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
No JBoss EAP 6, os caches clusterizados padrão para replicação de sessão da web e replicação EJB foram replicados ASYNC caches. Isso mudou no JBoss EAP 7. Os caches clusterizados padrão agora são distribuídos ASYNC caches. Os caches replicados não são mais configurados por padrão. Vejo Configurar o modo de cache no JBoss EAP Guia de configuração para obter informações sobre como adicionar um cache replicado e torná-lo o padrão.
Isso só afeta você quando você usa a nova configuração padrão do JBoss EAP 7. Se você migrar a configuração do JBoss EAP 6, a configuração do infinispan subsistema será preservado.
4.7.2. Alterações de estratégia de cachê Infinispan [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
O comportamento de ASYNC A estratégia de cache mudou no JBoss EAP 7.
No JBoss EAP 6, ASYNC Leituras de cache eram livres de bloqueio. Embora eles nunca fossem bloqueados, eles eram propensos a leituras sujas de dados obsoletos, por exemplo, em failover. Isso ocorre porque permitiria solicitações subsequentes para o mesmo usuário iniciar antes que a solicitação anterior fosse concluída. Essa permissividade não é aceitável ao usar o modo distribuído, já que as alterações da topologia de cluster podem afetar a afinidade da sessão e facilmente resultar em dados obsoletos.
No JBoss EAP 7, ASYNC leituras de cache exigem bloqueios. Como agora bloqueiam novas solicitações do mesmo usuário até que a replicação anterior termine, leituras sujas são evitadas.
4.7.3. Configurando o Cache do Bean de Sessão de Estado Customizado para Passivação [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Esteja ciente das seguintes restrições ao configurar um cache SFSB personalizado para passivação no JBoss EAP 7.1.
-
o
idle-timeoutatributo, que é configurado noinfinispanpassivation-storedoejb3subsistema, está obsoleto no JBoss EAP 7.1. O JBoss EAP 6.4 suportava passivação rápida, passivando de acordo com oidle-timeoutvalor. O JBoss EAP 7.1 suporta passivação preguiçosa, passivando quando omax-sizelimiar é alcançado. -
No JBoss EAP 7.1, o nome do cluster usado pelo cliente EJB é determinado pelo nome real do cluster do canal, conforme configurado no
jgroupssubsistema. -
O JBoss EAP 7.1 ainda permite que você defina
max-sizeatributo para controlar o limiar de passivação. Você não deve configurar o despejo ou a expiração em sua configuração de cache do EJB.
-
Você deve configurar o despejo usando o
max-sizeatributo dopassivation-storenoejb3subsistema. -
Você deve configurar a expiração usando o
@StatefulTimeoutanotação no código fonte do SFSB Java ou especificando umstateful-timeoutvalor noejb-jar.xmlArquivo.
-
Você deve configurar o despejo usando o
4.7.4. Alterações no Transporte do Contêiner de Cache Infinispan [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Uma mudança de comportamento entre o JBoss EAP 7.0 e o JBoss EAP 7.1 requer que quaisquer atualizações no protocolo de transporte do contêiner de cache sejam feitas no modo batch ou usando um cabeçalho especial. Essa mudança de comportamento também afeta quaisquer ferramentas usadas para gerenciar o servidor do JBoss EAP.
A seguir, um exemplo dos comandos CLI de gerenciamento usados para configurar o protocolo de transporte do contêiner de cache no JBoss EAP 7.0.
/subsystem=infinispan/cache-container=my:add() /subsystem=infinispan/cache-container=my/transport=jgroups:add() /subsystem=infinispan/cache-container=my/invalidation-cache=mycache:add(mode=SYNC)
/subsystem=infinispan/cache-container=my:add()
/subsystem=infinispan/cache-container=my/transport=jgroups:add()
/subsystem=infinispan/cache-container=my/invalidation-cache=mycache:add(mode=SYNC)
A seguir, um exemplo dos comandos CLI de gerenciamento necessários para executar a mesma configuração no JBoss EAP 7.1. Note que os comandos são executados em modo batch.
batch /subsystem=infinispan/cache-container=my:add() /subsystem=infinispan/cache-container=my/transport=jgroups:add() /subsystem=infinispan/cache-container=my/invalidation-cache=mycache:add(mode=SYNC) run-batch
batch
/subsystem=infinispan/cache-container=my:add()
/subsystem=infinispan/cache-container=my/transport=jgroups:add()
/subsystem=infinispan/cache-container=my/invalidation-cache=mycache:add(mode=SYNC)
run-batch
Se preferir não usar o modo batch, você pode especificar o cabeçalho da operação allow-resource-service-restart=true ao definir o transporte. Esteja ciente de que isso reinicia o serviço para que as operações entrem em vigor, e alguns serviços podem parar de funcionar até que o serviço seja reiniciado.
Se você usar scripts para atualizar o protocolo de transporte do contêiner de cache, não deixe de revisá-los e adicionar o modo em lote.
4.8. Alterações de configurações de servidor EJB [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Não há migrate operação para o ejb3 subsistema, por isso, se você usar o CLI de gerenciamento migrate operações para atualizar suas outras configurações existentes do JBoss EAP 6.4, esteja ciente de que ejb3 a configuração do subsistema não é migrada. Porque a configuração do ejb3 subsistema é um pouco diferente no JBoss EAP 7.1 do que no JBoss EAP 6.4, você pode ver exceções no log do servidor quando você implementa seus aplicativos EJB.
Se você usar a Ferramenta de Migração do JBoss Server para atualizar a configuração do servidor, ejb3 O subsistema deve ser configurado corretamente e você não deve ver nenhum problema ao implementar seus aplicativos EJB. Para obter informações sobre como configurar e executar a ferramenta, consulte Usando a Ferramenta de Migração do JBoss Server.
DuplicateServiceException no log do servidor [Esta é uma tradução automática]
Os seguintes DuplicateServiceException é causado por alterações de cache no JBoss EAP 7.
DuplicateServiceException no log do servidor [Esta é uma tradução automática]
ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3) MSC000001: Failed to start service jboss.deployment.unit."mdb-1.0-SNAPSHOT.jar".cache-dependencies-installer: org.jboss.msc.service.StartException in service jboss.deployment.unit."mdb-1.0-SNAPSHOT.jar".cache-dependencies-installer: Failed to start service ... Caused by: org.jboss.msc.service.DuplicateServiceException: Service jboss.infinispan.ejb."mdb-1.0-SNAPSHOT.jar".config is already registered
ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3) MSC000001: Failed to start service jboss.deployment.unit."mdb-1.0-SNAPSHOT.jar".cache-dependencies-installer: org.jboss.msc.service.StartException in service jboss.deployment.unit."mdb-1.0-SNAPSHOT.jar".cache-dependencies-installer: Failed to start service
...
Caused by: org.jboss.msc.service.DuplicateServiceException: Service jboss.infinispan.ejb."mdb-1.0-SNAPSHOT.jar".config is already registered
Você deve reconfigurar o cache para resolver este erro.
- Siga as instruções para Inicie o servidor e a CLI de gerenciamento.
Emita os seguintes comandos para reconfigurar o armazenamento em cache no
ejb3subsistema.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.9. Alterações de configuração do servidor de mensagens [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
No JBoss EAP 7, Active MQ Artemis substitui HornetQ como o fornecedor de suporte JMS. Esta seção descreve como migrar a configuração e dados de mensagens relacionados.
4.9.1. Alterações de configuração do servidor de subsistema de mensagens [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
o org.jboss.as.messaging extensão de módulo, localizada em EAP_HOME/modules/system/layers/base/, foi substituído pelo org.wildfly.extension.messaging-activemq módulo de extensão.
o urn:jboss:domain:messaging:3.0 o namespace de configuração do subsistema foi substituído pelo urn:jboss:domain:messaging-activemq:2.0 namespace.
Mudanças no gerenciamento de JMX [Esta é uma tradução automática]
Na maioria dos casos, houve um empenho para manter o quanto mais possível a similaridade dos nomes de elementos e de atributos daqueles utilizados nas versões prévias. A seguinte tabela lista algumas das alterações.
| Nome HornetQ | Nome ActiveMQ |
|---|---|
|
hornetq-server |
servidor |
|
Tipo de hornetq-server |
serverType |
|
conectores |
conector |
|
discovery-group-name |
discovery-group |
As operações de gerenciamento invocadas no novo messaging-activemq subsistema mudou de /subsystem=messaging/hornetq-server= para /subsystem=messaging-activemq/server=.
Você pode migrar um JBoss EAP 6 existente messaging configuração do subsistema para o messaging-activemq subsistema em um servidor JBoss EAP 7 invocando sua migrate Operação.
/subsystem=messaging:migrate
/subsystem=messaging:migrate
Antes de executar o migrate operação, você pode invocar o describe-migration operação para revisar a lista de operações de gerenciamento que serão executadas para migrar do JBoss EAP 6 existente messaging configuração do subsistema para o messaging-activemq subsistema no servidor do JBoss EAP 7.
/subsystem=messaging:describe-migration
/subsystem=messaging:describe-migration
o migrate e describe-migration operações também exibem uma lista de migration-warnings para recursos ou atributos que não podem ser migrados automaticamente.
Avisos para a operação de migração de subsistema de mensagem [Esta é uma tradução automática]
o describe-migration e migrate operações para o messaging subsistema fornece um argumento de configuração adicional. Se você deseja configurar o sistema de mensagens para permitir que clientes legados do JBoss EAP 6 se conectem ao servidor do JBoss EAP 7, você pode adicionar o sistema de mensagens booleano. add-legacy-entries argumento para o describe-migration ou migrate operação da seguinte forma.
/subsystem=messaging:describe-migration(add-legacy-entries=true) /subsystem=messaging:migrate(add-legacy-entries=true)
/subsystem=messaging:describe-migration(add-legacy-entries=true)
/subsystem=messaging:migrate(add-legacy-entries=true)
Se o argumento booleano add-legacy-entries está configurado para true, a messaging-activemq subsistema cria o legacy-connection-factory recurso e adiciona legacy-entries ao jms-queue e jms-topic Recursos.
Se o argumento booleano add-legacy-entries está configurado para false, nenhum recurso legado é criado no messaging-activemq subsistemas e clientes JMS legados não poderão se comunicar com os servidores do JBoss EAP 7. Este é o valor padrão.
Para obter mais informações sobre compatibilidade com versões anteriores e futuras, consulte Compatibilidade para trás e para frente dentro Configurando o Messaging para o JBoss EAP.
Para mais informações sobre o CLI de gerenciamento migrate e describe-migration operações, consulte Operação de Migração do CLI de Gerenciamento.
Alteração de comportamento de atributo forward-when-no-consumers
O comportamento do forward-when-no-consumers atributo foi alterado no JBoss EAP 7.
No JBoss EAP 6, quando forward-when-no-consumers foi definido para false e não havia consumidores em um cluster, as mensagens foram redistribuídas para todos os nós em um cluster.
Este comportamento mudou no JBoss EAP 7. Quando forward-when-no-consumers está configurado para false e não há consumidores em um cluster, as mensagens não são redistribuídas. Em vez disso, eles são mantidos no nó original para o qual foram enviados.
Alteração na diretiva de balanceamento de carga de cluster padrão
A política de balanceamento de carga de cluster padrão foi alterada no JBoss EAP 7.
No JBoss EAP 6, a política de balanceamento de carga de cluster padrão era similar a STRICT, que é como definir o legado forward-when-no-consumers parâmetro para true. No JBoss EAP 7, o padrão é agora ON_DEMAND, que é como definir o legado forward-when-no-consumers parâmetro para false. Para mais informações sobre essas configurações, consulte Atributos de Conexão de Cluster dentro Configurando o Messaging para o JBoss EAP.
Alterações de configuração do servidor de subsistema de mensagens [Esta é uma tradução automática]
A configuração XML mudou significativamente com o novo messaging-activemq subsistema, e agora fornece um esquema XML mais consistente com outros subsistemas do JBoss EAP.
É altamente recomendado que você não tente modificar o JBoss EAP messaging configuração XML do subsistema para se adequar ao novo messaging-activemq subsistema. Em vez disso, invoque o subsistema herdado migrate Operação. Esta operação irá escrever a configuração XML do novo messaging-activemq subsistema como parte de sua execução.
4.9.2. Migrar dados de mensagem [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Você pode usar uma das seguintes abordagens para migrar dados do sistema de mensagens de um release anterior para o release atual do JBoss EAP.
-
Para sistemas de mensagens baseados em arquivos, você pode migrar dados de mensagens do JBoss EAP 6.4 ou do JBoss EAP 7.0 para o JBoss EAP 7.1 usando o método de exportação e importação. Com esse método, você exporta os dados do sistema de mensagens do release anterior e os importa usando a CLI de gerenciamento
import-journalOperação. Esteja ciente de que você pode usar essa abordagem apenas para sistemas de mensagens baseados em arquivos. - Você pode migrar dados de mensagens do JBoss EAP 6.4 para o JBoss EAP 7.1 configurando uma ponte JMS. Você pode usar essa abordagem para sistemas de mensagens baseados em arquivos e JDBC.
Devido à mudança do HornetQ para o ActiveMQ Artemis como provedor de suporte JMS, tanto o formato quanto a localização dos dados do sistema de mensagens foram alterados no JBoss EAP 7.0 e posterior. Vejo Mapeando nomes de pastas de mensagens para obter detalhes sobre as alterações nos nomes e locais da pasta de dados do sistema de mensagens entre as versões 6.4 e 7.x.
4.9.2.1. Migrar dados de mensagens usando exportação e importação [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Usando essa abordagem, você exporta os dados do sistema de mensagens de um release anterior para um arquivo XML e, em seguida, importa esse arquivo usando o arquivo. import-journal Operação.
Exporte os dados do sistema de mensagens para um arquivo XML.
- Importe os dados de mensagens formatados em XML.
Não é possível usar o método de exportação e importação para mover dados do sistema de mensagens entre sistemas que usam um diário baseado em JDBC para armazenamento.
Exemplo: Access Log Format no JBoss EAP 6.4 [Esta é uma tradução automática]
Devido à mudança do HornetQ para o ActiveMQ Artemis como provedor de suporte JMS, tanto o formato quanto a localização dos dados do sistema de mensagens foram alterados no JBoss EAP 7.0 e posterior.
Para exportar dados de mensagens do JBoss EAP 6.4, você deve usar o HornetQ exporter utilidade. O HornetQ exporter utilitário gera e exporta os dados do sistema de mensagens do JBoss EAP 6.4 para um arquivo XML. Este comando requer que você especifique os caminhos para os JARs do HornetQ que são enviados com o JBoss EAP 6.4, passe os caminhos para messagingbindings/, messagingjournal/, messagingpaging/, e messaginglargemessages/ pastas do release anterior como argumentos e especifique um arquivo de saída no qual gravar os dados XML exportados.
A seguir, a sintaxe exigida pelo HornetQ exporter utilidade.
java -jar -mp MODULE_PATH org.hornetq.exporter MESSAGING_BINDINGS_DIRECTORY MESSAGING_JOURNAL_DIRECTORY MESSAGING_PAGING_DIRECTORY MESSAGING_LARGE_MESSAGES_DIRECTORY > OUTPUT_DATA.xml
$ java -jar -mp MODULE_PATH org.hornetq.exporter MESSAGING_BINDINGS_DIRECTORY MESSAGING_JOURNAL_DIRECTORY MESSAGING_PAGING_DIRECTORY MESSAGING_LARGE_MESSAGES_DIRECTORY > OUTPUT_DATA.xml
Crie um módulo personalizado para garantir que as versões corretas dos JARs do HornetQ, incluindo quaisquer JARs instalados com correções ou atualizações, sejam carregados e disponibilizados para o exporter utilidade. Usando seu editor favorito, crie um novo module.xml arquivo no EAP6_HOME/modules/org/hornetq/exporter/main/ diretório e copie o seguinte conteúdo:
O módulo personalizado é criado no modules/ diretório, não o modules/system/layers/base/ diretório.
Siga os passos abaixo para exportar os dados.
- Exemplo: Nome do Driver do JBoss EAP 6 [Esta é uma tradução automática]
- Crie um módulo personalizado conforme descrito acima.
Execute o seguinte comando para exportar os dados.
java -jar jboss-modules.jar -mp modules/ org.hornetq.exporter standalone/data/messagingbindings/ standalone/data/messagingjournal/ standalone/data/messagingpaging standalone/data/messaginglargemessages/ > OUTPUT_DIRECTORY/OldMessagingData.xml
$ java -jar jboss-modules.jar -mp modules/ org.hornetq.exporter standalone/data/messagingbindings/ standalone/data/messagingjournal/ standalone/data/messagingpaging standalone/data/messaginglargemessages/ > OUTPUT_DIRECTORY/OldMessagingData.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Certifique-se de que não há erros ou mensagens de aviso no registro na conclusão do comando.
- Utilize as ferramentas disponíveis para seu sistema operacional para validar o XML no arquivo de saída gerado.
Mudanças de Configuração de Mensagens no JBoss EAP 7.1 [Esta é uma tradução automática]
Siga estas etapas para exportar dados de mensagens do JBoss EAP 7.0.
Abra um terminal, navegue até o diretório de instalação do JBoss EAP 7.0 e inicie o servidor em
admin-onlymodo.EAP_HOME/bin/standalone.sh -c standalone-full.xml --start-mode=admin-only
$ EAP_HOME/bin/standalone.sh -c standalone-full.xml --start-mode=admin-onlyCopy to Clipboard Copied! Toggle word wrap Toggle overflow Abra um novo terminal, navegue até o diretório de instalação do JBoss EAP 7.0 e conecte-se à CLI de gerenciamento.
EAP_HOME/bin/jboss-cli.sh --connect
$ EAP_HOME/bin/jboss-cli.sh --connectCopy to Clipboard Copied! Toggle word wrap Toggle overflow Use o seguinte comando da CLI de gerenciamento para exportar os dados do diário de mensagens.
/subsystem=messaging-activemq/server=default:export-journal()
/subsystem=messaging-activemq/server=default:export-journal()Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Certifique-se de que não há erros ou mensagens de aviso no registro na conclusão do comando.
- Utilize as ferramentas disponíveis para seu sistema operacional para validar o XML no arquivo de saída gerado.
Migrar dados de mensagem [Esta é uma tradução automática]
Você então importa o arquivo XML para o JBoss EAP 7.0 ou posterior usando o import-journal operação da seguinte forma.
Se o servidor de destino já tiver executado algumas tarefas de mensagens, faça backup de suas pastas de mensagens antes de iniciar a tarefa. import-journal operação para evitar a perda de dados no caso de uma falha na importação. Vejo Fazendo backup dos dados da pasta de mensagens Para maiores informações.
- Se você está migrando seu servidor do JBoss EAP 6.4 para o 7.1, certifique-se de ter completado a migração da configuração do servidor antes de começar usando o operação de migração da CLI de gerenciamento ou executando a Ferramenta de Migração do JBoss Server. Para obter informações sobre como configurar e executar a ferramenta, consulte Usando a Ferramenta de Migração do JBoss Server.
Inicie o servidor do JBoss EAP 7.x no modo normal com não Clientes JMS conectados.
ImportanteÉ importante que você inicie o servidor sem nenhum cliente JMS conectado. Isso é porque o
import-journaloperação se comporta como um produtor JMS. As mensagens estão imediatamente disponíveis quando a operação está em andamento. Se esta operação falhar no meio da importação e os clientes JMS estiverem conectados, não será possível recuperar porque os clientes JMS já podem ter consumido algumas das mensagens.Abra um novo terminal, navegue até o diretório de instalação do JBoss EAP 7.xe conecte-se à CLI de gerenciamento.
EAP_HOME/bin/jboss-cli.sh --connect
$ EAP_HOME/bin/jboss-cli.sh --connectCopy to Clipboard Copied! Toggle word wrap Toggle overflow Use o seguinte comando da CLI de gerenciamento para importar os dados do sistema de mensagens.
/subsystem=messaging-activemq/server=default:import-journal(file=OUTPUT_DIRECTORY/OldMessagingData.xml)
/subsystem=messaging-activemq/server=default:import-journal(file=OUTPUT_DIRECTORY/OldMessagingData.xml)Copy to Clipboard Copied! Toggle word wrap Toggle overflow ImportanteFaz não execute este comando mais de uma vez, pois isso resultará em mensagens duplicadas!
AtençãoSe você estiver usando o JBoss EAP 7.0, você deve Red Hat JBoss Enterprise Application Platform 7,0 atualização 05 ou um novo patch cumulativo para a sua instalação do JBoss EAP, a fim de evitar um problema conhecido ao ler mensagens grandes. Para mais informações, veja JBEAP-4407 - O consumidor trava com IndexOutOfBoundsException ao ler mensagens grandes de um registro importado. Este problema não afeta o JBoss EAP 7.1 ou posterior.
Recuperando-se de uma falha de dados de mensagens de importação
Se o import-journal operação falhar, você pode tentar recuperar usando as etapas a seguir.
- Encerre o servidor do JBoss EAP 7.x.
- Exclua todas as pastas do diário de mensagens. Vejo Fazendo backup dos dados da pasta de mensagens para os comandos da CLI de gerenciamento para determinar o local correto do diretório para as pastas do diário de mensagens.
- Se você fez backup dos dados do sistema de mensagens do servidor de destino antes da importação, copie as pastas do sistema de mensagens do local de backup para o diretório do diário de mensagens determinado na etapa anterior.
- Repita os passos para importar os dados de mensagens formatados em XML.
4.9.2.2. Migrar dados de mensagem usando uma ponte JMS [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Usando essa abordagem, você configura e implementa uma ponte JMS no servidor do JBoss EAP 7.x. A ponte JMS move as mensagens da fila JBoss EAP 6.4 HornetQ para a fila do JBoss EAP 7.x ActiveMQ Artemis.
Uma ponte JMS consome mensagens a partir de uma fila JMS fonte ou tópico e as envia a uma fila JMS destino ou tópico, que está normalmente em um servidor diferente. Isto pode ser usado como ponte para as mensagens entre quaisquer servidores JMS, contanto que elas sejam compatíveis com o JMS 1.1. Os recursos JMS de destino e fonte são pesquisados usando o JNDI e as classes de cliente para a pesquisa JNDI devem ser empacotadas em um módulo. O nome do módulo é, então, declarado na configuração da ponte JMS.
Esta seção descreve como configurar os servidores e implantar uma ponte JMS para mover os dados do sistema de mensagens do JBoss EAP 6.4 para o JBoss EAP 7.x.
Configurar o servidor do JBoss EAP 6.4
- Exemplo: Nome do Driver do JBoss EAP 6 [Esta é uma tradução automática]
Fazendo o back up do diário HornetQ e arquivos de configuração.
-
Por padrão, o diário HornetQ está localizado no
EAP6_HOME/standalone/data/diretório. - Vejo Mapeando nomes de pastas de mensagens para locais de pastas de mensagens padrão para cada versão.
-
Por padrão, o diário HornetQ está localizado no
-
Certifique-se de que
InQueueA fila JMS contendo as mensagens JMS é definida no servidor do JBoss EAP 6.4. Certifique-se de que
messagingconfiguração do subsistema contém uma entrada para oRemoteConnectionFactorysemelhante ao seguinte.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Se não contiver a entrada, crie uma usando o seguinte comando da CLI de gerenciamento:
/subsystem=messaging/hornetq-server=default/connection-factory=RemoteConnectionFactory:add(factory-type=XA_GENERIC, connector=[netty], entries=[java:jboss/exported/jms/RemoteConnectionFactory],ha=true,block-on-acknowledge=true,retry-interval=1000,retry-interval-multiplier=1.0,reconnect-attempts=-1)
/subsystem=messaging/hornetq-server=default/connection-factory=RemoteConnectionFactory:add(factory-type=XA_GENERIC, connector=[netty], entries=[java:jboss/exported/jms/RemoteConnectionFactory],ha=true,block-on-acknowledge=true,retry-interval=1000,retry-interval-multiplier=1.0,reconnect-attempts=-1)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Configurar o servidor do JBoss EAP 7.x de destino
A configuração da ponte JMS precisa do
org.hornetqmódulo para se conectar ao servidor HornetQ na versão anterior. Este módulo e suas dependências diretas não estão presentes no JBoss EAP 7.x, então você deve copiar os seguintes módulos da versão anterior.Copie o
org.hornetqmódulo no JBoss EAP 7.xEAP_HOME/modules/org/diretório.-
Se você não aplicou patches neste módulo, copie esta pasta do servidor do JBoss EAP 6.4:
EAP6_HOME/modules/system/layers/base/org/hornetq/ -
Se você aplicou patches neste módulo, copie esta pasta do servidor do JBoss EAP 6.4:
EAP6_HOME/modules/system/layers/base/.overlays/layer-base-jboss-eap-6.4.x.CP/org/hornetq/
-
Se você não aplicou patches neste módulo, copie esta pasta do servidor do JBoss EAP 6.4:
Remova o
<resource-root>para o HornetQlibcaminho do JBoss EAP 7.xEAP_HOME/modules/org/hornetq/main/module.xmlArquivo.Se você não aplicou patches ao JBoss EAP 6.4
org.hornetqmódulo, remova a seguinte linha do arquivo:<resource-root path="lib"/>
<resource-root path="lib"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Se você aplicou patches ao JBoss EAP 6.4
org.hornetqmodule, remova as seguintes linhas do arquivo:<resource-root path="lib"/> <resource-root path="../../../../../org/hornetq/main/lib"/>
<resource-root path="lib"/> <resource-root path="../../../../../org/hornetq/main/lib"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow AtençãoFalha ao remover o HornetQ
libcaminhoresource-rootfará com que a ponte falhe com o seguinte erro no arquivo de log.2016-07-15 09:32:25,660 ERROR [org.jboss.as.controller.management-operation] (management-handler-thread - 2) WFLYCTL0013: Operation ("add") failed - address: ([ ("subsystem" => "messaging-activemq"), ("jms-bridge" => "myBridge") ]) - descrição da falha: "WFLYMSGAMQ0086: Não foi possível carregar módulo org.hornetq"2016-07-15 09:32:25,660 ERROR [org.jboss.as.controller.management-operation] (management-handler-thread - 2) WFLYCTL0013: Operation ("add") failed - address: ([ ("subsystem" => "messaging-activemq"), ("jms-bridge" => "myBridge") ]) - descrição da falha: "WFLYMSGAMQ0086: Não foi possível carregar módulo org.hornetq"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Copie o
org.jboss.nettymódulo no JBoss EAP 7.xEAP_HOME/modules/org/jboss/diretório.-
Se você não aplicou patches neste módulo, copie esta pasta do servidor do JBoss EAP 6.4:
EAP6_HOME/modules/system/layers/base/org/jboss/netty/ -
Se você aplicou patches neste módulo, copie esta pasta do servidor do JBoss EAP 6.4:
EAP6_HOME/modules/system/layers/base/.overlays/layer-base-jboss-eap-6.4.x.CP/org/jboss/netty
-
Se você não aplicou patches neste módulo, copie esta pasta do servidor do JBoss EAP 6.4:
Crie a fila do JMS para conter as mensagens recebidas do servidor do JBoss EAP 6.4. A seguir, um exemplo de um comando da CLI de gerenciamento que cria o
MigratedMessagesQueueFila JMS para receber a mensagem.jms-queue add --queue-address=MigratedMessagesQueue --entries=[jms/queue/MigratedMessagesQueue java:jboss/exported/jms/queue/MigratedMessagesQueue]
jms-queue add --queue-address=MigratedMessagesQueue --entries=[jms/queue/MigratedMessagesQueue java:jboss/exported/jms/queue/MigratedMessagesQueue]Copy to Clipboard Copied! Toggle word wrap Toggle overflow Isso cria o seguinte
jms-queueconfiguração para o servidor padrão nomessaging-activemqsubsistema do servidor do JBoss EAP 7.x.<jms-queue name="MigratedMessagesQueue" entries="jms/queue/MigratedMessagesQueue java:jboss/exported/jms/queue/MigratedMessagesQueue"/>
<jms-queue name="MigratedMessagesQueue" entries="jms/queue/MigratedMessagesQueue java:jboss/exported/jms/queue/MigratedMessagesQueue"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Certifique-se de que
messaging-activemqsubsistemadefaultservidor contém uma configuração para oInVmConnectionFactoryconnection-factorysemelhante ao seguinte:<connection-factory name="InVmConnectionFactory" factory-type="XA_GENERIC" entries="java:/ConnectionFactory" connectors="in-vm"/>
<connection-factory name="InVmConnectionFactory" factory-type="XA_GENERIC" entries="java:/ConnectionFactory" connectors="in-vm"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Se não contiver a entrada, crie uma usando o seguinte comando da CLI de gerenciamento:
/subsystem=messaging-activemq/server=default/connection-factory=InVmConnectionFactory:add(factory-type=XA_GENERIC, connectors=[in-vm], entries=[java:/ConnectionFactory])
/subsystem=messaging-activemq/server=default/connection-factory=InVmConnectionFactory:add(factory-type=XA_GENERIC, connectors=[in-vm], entries=[java:/ConnectionFactory])Copy to Clipboard Copied! Toggle word wrap Toggle overflow Crie e implemente uma ponte JMS que leia mensagens do
InQueueFila JMS configurada no servidor do JBoss EAP 6.4 e as transfere para o servidorMigratedMessagesQueueconfigurado no servidor do JBoss EAP 7.x./subsystem=messaging-activemq/jms-bridge=myBridge:add(add-messageID-in-header=true,max-batch-time=100,max-batch-size=10,max-retries=-1,failure-retry-interval=1000,quality-of-service=AT_MOST_ONCE,module=org.hornetq,source-destination=jms/queue/InQueue,source-connection-factory=jms/RemoteConnectionFactory,source-context=[("java.naming.factory.initial"=>"org.wildfly.naming.client.WildFlyInitialContextFactory"),("java.naming.provider.url"=>"remote://127.0.0.1:4447")],target-destination=jms/queue/MigratedMessagesQueue,target-connection-factory=java:/ConnectionFactory)/subsystem=messaging-activemq/jms-bridge=myBridge:add(add-messageID-in-header=true,max-batch-time=100,max-batch-size=10,max-retries=-1,failure-retry-interval=1000,quality-of-service=AT_MOST_ONCE,module=org.hornetq,source-destination=jms/queue/InQueue,source-connection-factory=jms/RemoteConnectionFactory,source-context=[("java.naming.factory.initial"=>"org.wildfly.naming.client.WildFlyInitialContextFactory"),("java.naming.provider.url"=>"remote://127.0.0.1:4447")],target-destination=jms/queue/MigratedMessagesQueue,target-connection-factory=java:/ConnectionFactory)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Isso cria o seguinte
jms-bridgeconfiguração nomessaging-activemqsubsistema do servidor do JBoss EAP 7.x.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Se a segurança estiver configurada para o JBoss EAP 6.4, você também deve configurar a configuração da ponte JMS
<source>elemento para incluir umsource-contextque especifica o nome de usuário e a senha corretos a serem usados para a consulta JNDI ao criar a conexão.
Migrar dados de mensagem [Esta é uma tradução automática]
Verifique se a informação que você forneceu para a seguinte configuração está correta.
- Qualquer fila e nomes de tópicos.
-
o
java.naming.provider.urlpara pesquisa de JNDI.
- Certifique-se de ter implementado o destino JMS de destino no servidor do JBoss EAP 7.x.
- Inicie os servidores do JBoss EAP 6.4 e do JBoss EAP 7.x.
4.9.2.3. Mapeamento dos nomes da pasta de mensagens [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
A tabela a seguir mostra os nomes dos diretórios do sistema de mensagens usados no release anterior e os nomes correspondentes usados no release atual do JBoss EAP. Os diretórios são relativos ao jboss.server.data.dir diretório, cujo padrão é EAP_HOME/standalone/data/ se não for especificado.
| Exemplo: Nome do Driver do JBoss EAP 6 [Esta é uma tradução automática] | Exemplo: Nome do Driver do JBoss EAP 7 [Esta é uma tradução automática] |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
o messaginglargemessages/ e messagingpaging/ diretórios podem não estar presentes se não houver mensagens grandes ou se a paginação estiver desativada.
4.9.2.4. Fazendo backup dos dados da pasta de mensagens [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Se o servidor de destino já tiver processado mensagens, é recomendável fazer backup das pastas de mensagens de destino em um local de backup antes de começar. A localização padrão das pastas de mensagens é EAP_HOME/standalone/data/activemq/; no entanto, é configurável. Se você não tiver certeza da localização de seus dados de mensagens, poderá usar os seguintes comandos da CLI de gerenciamento para encontrar o local das pastas de mensagens.
/subsystem=messaging-activemq/server=default/path=journal-directory:resolve-path /subsystem=messaging-activemq/server=default/path=paging-directory:resolve-path /subsystem=messaging-activemq/server=default/path=bindings-directory:resolve-path /subsystem=messaging-activemq/server=default/path=large-messages-directory:resolve-path
/subsystem=messaging-activemq/server=default/path=journal-directory:resolve-path
/subsystem=messaging-activemq/server=default/path=paging-directory:resolve-path
/subsystem=messaging-activemq/server=default/path=bindings-directory:resolve-path
/subsystem=messaging-activemq/server=default/path=large-messages-directory:resolve-path
Depois de saber a localização das pastas, copie cada pasta para um local de backup seguro.
4.9.3. Migrar as destinações JMS [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Nas versões anteriores do JBoss EAP, as filas de destino JMS foram configuradas no <jms-destinations> elemento sob o <hornetq-server> elemento no messaging subsistema.
No JBoss EAP 7, a fila de destino do JMS é configurada no padrão <server> elemento do messaging-activemq subsistema.
<server name="default"> ... <jms-queue name="testQueue" entries="queue/test java:jboss/exported/jms/queue/test"/> ... </server>
<server name="default">
...
<jms-queue name="testQueue" entries="queue/test java:jboss/exported/jms/queue/test"/>
...
</server>
4.9.4. Migrar interceptores de mensagem [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Interceptores de mensagem foram alterados significativamente no JBoss EAP 7 com a substituição do HornetQ pelo ActiveMQ Artemis como o provedor de mensagem JMS.
O HornetQ messaging Um subsistema incluído no lançamento anterior do JBoss EAP requeria que você instalasse os interceptores HornetQ adicionando-os a um JAR e então modificando o HornetQ module.xml Arquivo.
o messaging-activemq subsistema incluído no JBoss EAP 7 não requer modificação de um module.xml Arquivo. Classes de interceptadores do usuário, que agora implementam o Apache ActiveMQ Artemis Interceptor interface, agora pode ser carregado de qualquer módulo do servidor. Você especifica o módulo do qual o interceptador deve ser carregado no messaging-activemq subsistema do arquivo de configuração do servidor.
Exemplo: Configuração do Interceptor [Esta é uma tradução automática]
4.9.5. Substituir as configuraões Netty Servlet [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
No JBoss EAP 6, você poderia configurar um mecanismo de servlet para trabalhar com o transporte Netty Servlet. Como o ActiveMQ Artemis substitui o HornetQ como o provedor de mensagens integrado no JBoss EAP 7, essa configuração não está mais disponível. Você deve substituir a configuração de servlet para usar os novos conectores HTTP de mensagens e os aceitadores HTTP.
4.9.6. Configurando um Adaptador de Recursos JMS Genérico [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
A maneira como você configura um adaptador de recursos JMS genérico para uso com um provedor JMS de terceiros foi alterada no JBoss EAP 7. Para obter mais informações, consulte Implantando um Adaptador de Recursos JMS Genérico dentro Configurando o Messaging para o JBoss EAP.
4.9.7. Mudanças de Configuração de Mensagens no JBoss EAP 7.1 [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
No JBoss EAP 7.0, se você configurou o replication-master política sem especificar o check-for-live-server atributo, seu valor padrão era false. Isso mudou no JBoss EAP 7.1. O valor padrão para o check-for-live-server atributo é agora true.
A seguir, um exemplo de um comando da CLI de gerenciamento que configura replication-master política sem especificar o check-for-live-server atributo.
/subsystem=messaging-activemq/server=default/ha-policy=replication-master:add(cluster-name=my-cluster,group-name=group1)
/subsystem=messaging-activemq/server=default/ha-policy=replication-master:add(cluster-name=my-cluster,group-name=group1)
Quando você lê o recurso usando a CLI de gerenciamento, observe que check-for-live-server o valor do atributo está definido como true.
4.9.8. Alterações no Comportamento de Serialização do JMS entre Liberações [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
o serialVersionUID do javax.jms.JMSException mudou entre o JMS 1.1 e o JMS 2.0.0. Isso significa que, se uma instância de um JMSException, ou qualquer uma de suas subclasses, é serializado usando o JMS 1.1, não pode ser desserializado usando o JMS 2.0.0. O contrário também é verdade. Se uma instância de JMSException é serializado usando o JMS 2.0.0, ele não pode ser desserializado usando o JMS 1.1. Em ambos os casos, lança uma exceção semelhante à seguinte:
javax.jms.JMSException: javax.jms.JMSException; local class incompatible: stream classdesc serialVersionUID = 8951994251593378324, local class serialVersionUID = 2368476267211489441
javax.jms.JMSException: javax.jms.JMSException; local class incompatible: stream classdesc serialVersionUID = 8951994251593378324, local class serialVersionUID = 2368476267211489441
Esse problema foi corrigido na versão de manutenção do JMS 2.0.1.
Implementação do JMS para cada versão do JBoss EAP [Esta é uma tradução automática]
| JBoss EAP Version | Implementação JMS | Versão JMS |
|---|---|---|
|
6.4 |
HornetQ |
JMS 1.1 |
|
7.0 |
Apache ActiveMQ Artemis |
JMS 2.0.0 |
|
7.1 |
Apache ActiveMQ Artemis |
JMS 2.0.1 |
Esteja ciente de que o serialVersionUID incompatibilidade pode resultar em um problema de migração nas seguintes situações:
-
Se você enviar uma mensagem que contenha
JMSExceptionusando um cliente do JBoss EAP 6.4, migre seus dados do sistema de mensagens para o JBoss EAP 7.0 e tente desserializar a mensagem usando um cliente do JBoss EAP 7.0, a desserialização falhará e lançará uma exceção. Isso é porque oserialVersionUIDno JMS 1.1 é não compatível com o do JMS 2.0.0. -
Se você enviar uma mensagem que contenha
JMSExceptionUsando um cliente do JBoss EAP 7.0, migre seus dados do sistema de mensagens para o JBoss EAP 7.1 e tente desserializar essa mensagem usando um cliente do JBoss EAP 7.1, a desserialização falhará e lançará uma exceção. Isso é porque oserialVersionUIDno JMS 2.0.0 é não compatível com o do JMS 2.0.1.
Note que se você enviar uma mensagem que contenha JMSException Usando um cliente do JBoss EAP 6.4, migre seus dados do sistema de mensagens para o JBoss EAP 7.1 e tente desserializar essa mensagem usando um cliente do JBoss EAP 7.1, a desserialização será bem sucedida porque o serialVersionUID no JMS 1.1 é compatível com o do JMS 2.0.1.
A Red Hat recomenda que você faça o seguinte antes de migrar seus dados de mensagens:
- Certifique-se de consumir todas as mensagens do JMS 1.1 que contenham JMSExceptions antes de migrar os dados do sistema de mensagens do JBoss EAP 6.4 para o JBoss EAP 7.0.
- Certifique-se de consumir todas as mensagens do JMS 2.0.0 que contenham JMSExceptions antes de migrar os dados do sistema de mensagens do JBoss EAP 7.0 para o JBoss EAP 7.1.
4.10. Mudanças no gerenciamento de JMX [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
O componente HornetQ no JBoss EAP 6 forneceu seu próprio gerenciamento JMX; no entanto, não foi recomendado e agora está obsoleto e não é mais suportado. Se você se baseou neste recurso no JBoss EAP 6, você deve migrar suas ferramentas de gerenciamento para usar a CLI de gerenciamento do JBoss EAP ou o gerenciamento JMX fornecido com o JBoss EAP 7.
Você também deve atualizar suas bibliotecas de clientes para usar o jboss-client.jar que vem com o JBoss EAP 7.
A seguir, um exemplo do código de gerenciamento do HornetQ JMX que foi usado no JBoss EAP 6.
A seguir, um exemplo do código equivalente necessário para o ActiveMQ Artemis no JBoss EAP 7.
Observe que os nomes e parâmetros do método foram alterados na nova implementação. Você pode encontrar os novos nomes de métodos no JConsole seguindo estas etapas.
Conecte-se ao JConsole usando o seguinte comando.
EAP_HOME/bin/jconsole.sh
$ EAP_HOME/bin/jconsole.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Conecte-se ao processo local do JBoss EAP. Note que deve começar com "jboss-modules.jar".
- No MBeans aba, escolha jboss.as → messaging-activemq → padrão → Operações para exibir a lista de nomes e atributos de métodos.
4.11. Alterações de configurações de servidor ORB [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
A implementação do JacORB foi substituída com uma ramificação downstream do OpenJDK ORB no JBoss EAP 7.
o org.jboss.as.jacorb módulo de extensão, localizado em EAP_HOME/modules/system/layers/base/, foi substituído pelo org.wildfly.iiop-openjdk módulo de extensão.
o urn:jboss:domain:jacorb:1.4 o namespace de configuração do subsistema no arquivo de configuração do servidor foi substituído pelo urn:jboss:domain:iiop-openjdk:1.0 namespace.
O seguinte é um exemplo do padrão jacorb configuração do sistema no JBoss EAP 6.
<subsystem xmlns="urn:jboss:domain:jacorb:1.4">
<orb socket-binding="jacorb" ssl-socket-binding="jacorb-ssl">
<initializers security="identity" transactions="spec"/>
</orb>
</subsystem>
<subsystem xmlns="urn:jboss:domain:jacorb:1.4">
<orb socket-binding="jacorb" ssl-socket-binding="jacorb-ssl">
<initializers security="identity" transactions="spec"/>
</orb>
</subsystem>
O seguinte é um exemplo do padrão iiop-openjdk configuração do subsistema no JBoss EAP 7.
<subsystem xmlns="urn:jboss:domain:iiop-openjdk:1.0">
<orb socket-binding="jacorb" ssl-socket-binding="jacorb-ssl" />
<initializers security="identity" transactions="spec" />
</subsystem>
<subsystem xmlns="urn:jboss:domain:iiop-openjdk:1.0">
<orb socket-binding="jacorb" ssl-socket-binding="jacorb-ssl" />
<initializers security="identity" transactions="spec" />
</subsystem>
O novo iiop-openjdk A configuração do subsistema aceita apenas um subconjunto dos elementos e atributos legados. O seguinte é um exemplo de um jacorb configuração do subsistema na versão anterior do JBoss EAP que contém todos os elementos e atributos válidos:
Os seguintes atributos de elementos não possuem mais suporte e devem ser removidos.
| Elemento | Atributos sem suporte |
|---|---|
|
<orb> |
|
|
<poa> |
|
Os seguintes on/off os atributos não são mais suportados e não serão migrados quando você executar a CLI de gerenciamento migrate Operação. Se eles estão definidos para on, você receberá um aviso de migração. De outros on/off atributos que não são mencionados nesta tabela, por exemplo <security support-ssl="on|off">, ainda são suportados e serão migrados com sucesso. A única diferença é que seus valores serão alterados de on/off para true/false.
| Elemento | Atributos para remover [Esta é uma tradução automática] |
|---|---|
|
<orb> |
|
|
<interop> |
(tudo exceto
|
|
<poa> |
|
4.12. Migrar a configuração de subsistema de threads [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
A configuração do servidor do JBoss EAP 6 incluiu threads subsistema usado para gerenciar conjuntos de encadeamentos nos diversos subsistemas no servidor.
o threads subsistema não está mais disponível no JBoss EAP 7. Em vez disso, cada subsistema é responsável por gerenciar seus próprios conjuntos de encadeamentos.
Para obter informações sobre como configurar pools de threads para o infinispan subsistema, consulte Configurar pools de threads do Infinispan no JBoss EAP Guia de configuração.
Para obter informações sobre como configurar pools de threads para o jgroups subsistema, consulte Configurar pools de threads do JGroups no JBoss EAP Guia de configuração.
No JBoss EAP 6, você configurou pools de threads para conectores e listeners para o web subsistema referenciando um executor que foi definido no threads subsistema. No JBoss EAP 7, você agora configura pools de threads para o undertow subsistema referenciando um worker que é definido no io subsistema. Para mais informações, veja Configurando o subsistema de E / S no JBoss EAP Guia de configuração.
Para obter informações sobre as alterações na configuração do pool de threads no remoting subsistema, consulte Migrar a configuração do subsistema remoto neste guia, e Configurando o Endpoint no JBoss EAP Guia de configuração.
4.13. Migrar a configuração de subsistema Remoto [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
No JBoss EAP 6, você configurou o pool de threads para o remoting subsistema, definindo vários worker-* atributos. O pool de threads de trabalho não está mais configurado no remoting subsistema no JBoss EAP 7 e se você tentar modificar a configuração existente, você verá a seguinte mensagem.
WFLYRMT0022: Worker configuration is no longer used, please use endpoint worker configuration
WFLYRMT0022: Worker configuration is no longer used, please use endpoint worker configuration
No JBoss EAP 7, o pool de threads de trabalho é substituído por uma configuração de terminal que referencia worker definido no io subsistema.
Para obter informações sobre como configurar o nó de extremidade, consulte Configurando o Endpoint no JBoss EAP Guia de configuração.
4.14. Alterações de configurações de servidor WebSocket [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Para usar WebSockets no JBoss EAP 6, você tinha que habilitar o protocolo do conector NIO2 sem bloqueio para o http conector no web subsistema do arquivo de configuração do servidor JBoss EAP usando um comando similar ao seguinte.
/subsystem=web/connector=http/:write-attribute(name=protocol,value=org.apache.coyote.http11.Http11NioProtocol)
/subsystem=web/connector=http/:write-attribute(name=protocol,value=org.apache.coyote.http11.Http11NioProtocol)
Para usar WebSockets em um aplicativo, você também tinha que criar um <enable-websockets> elemento na aplicação WEB-INF/jboss-web.xml arquivo e configurá-lo para true.
No JBoss EAP 7, você não precisa mais configurar o servidor para suporte padrão a WebSocket ou configurar o aplicativo para usá-lo. WebSockets são um requisito da especificação Java EE 7 e os protocolos necessários são configurados por padrão. Uma configuração WebSocket mais complexa é feita no servlet-container do undertow subsistema do arquivo de configuração do servidor JBoss EAP. Você pode visualizar as configurações disponíveis usando o seguinte comando.
Para obter mais informações sobre o desenvolvimento do WebSocket, consulte Criando Aplicativos WebSocket no JBoss EAP Guia de desenvolvimento.
Exemplos de códigos WebSocket também podem ser encontrados no início rápido (quickstarts) que é fornecido com JBoss EAP.
4.15. Alterações do servidor Single Sign-on [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
o infinispan O subsistema ainda fornece suporte a caching distribuído para serviços de HA na forma de caches Infinispan no JBoss EAP 7; no entanto, o armazenamento em cache e a distribuição de informações de autenticação são tratados de maneira diferente das versões anteriores.
No JBoss EAP 6, se o single sign-on (SSO) não foi fornecido um cache Infinispan, o cache não era distribuído.
No JBoss EAP 7, SSO é distribuído automaticamente quando você seleciona o perfil HA. Quando executar com o perfil HA, cada host tem seu próprio cache Infinispan, que é baseado no cache padrão do contêiner de cache da web. Este cache armazena sessões relevantes e informações de cookie SSO para o host. JBoss EAP trata a propagação de informação de cache individual para todos os hosts. Não existe nenhuma maneira para atribuir especificamente um cache Infinispan para um SSO no JBoss EAP 7.
No JBoss EAP 7, o SSO é configurado no undertow subsistema do arquivo de configuração do servidor.
Não há exigência de alteração de código de aplicativos para SSO quando migrando para JBoss EAP 7.
4.16. Alterações na configuração da fonte de dados [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
4.16.1. Nome do Driver da Origem de Dados JDBC [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Quando você configurou uma fonte de dados no release anterior do JBoss EAP, o valor especificado para o nome do driver dependia do número de classes listadas no META-INF/services/java.sql.Driver arquivo contido no JAR do driver JDBC.
Driver contendo uma classe única
Se o META-INF/services/java.sql.Driver arquivo especificado apenas uma classe, o valor do nome do driver era simplesmente o nome do JAR do driver JDBC. Isto não mudou no JBoss EAP 7.
Driver contendo classes múltiplas
IIn JBoss EAP 6, se houvesse mais de uma classe listada no META-INF/services/java.sql.Driver arquivo, você especificou qual classe era a classe do driver, anexando seu nome ao nome do JAR, juntamente com a versão principal e secundária, no seguinte formato.
JAR_NAME + DRIVER_CLASS_NAME + "_" + MAJOR_VERSION + "_" + MINOR_VERSION
JAR_NAME + DRIVER_CLASS_NAME + "_" + MAJOR_VERSION + "_" + MINOR_VERSION
No JBoss EAP 7, isto mudou. Você agora especifica o nome do driver utilizando o seguinte formato.
JAR_NAME + "_" + DRIVER_CLASS_NAME + "_" + MAJOR_VERSION + "_" + MINOR_VERSION
JAR_NAME + "_" + DRIVER_CLASS_NAME + "_" + MAJOR_VERSION + "_" + MINOR_VERSION
Um sublinhado foi adicionado entre o JAR_NAME e a DRIVER_CLASS_NAME.
O driver JDBC do MySQL 5.1.31 é um exemplo de um driver que contém duas classes. O nome da classe do driver é com.mysql.jdbc.Driver. Os exemplos a seguir demonstram as diferenças entre como você especifica o nome do driver na versão anterior e atual do JBoss EAP.
Exemplo: Nome do Driver do JBoss EAP 6 [Esta é uma tradução automática]
mysql-connector-java-5.1.31-bin.jarcom.mysql.jdbc.Driver_5_1
mysql-connector-java-5.1.31-bin.jarcom.mysql.jdbc.Driver_5_1
Exemplo: Nome do Driver do JBoss EAP 7 [Esta é uma tradução automática]
mysql-connector-java-5.1.31-bin.jar_com.mysql.jdbc.Driver_5_1
mysql-connector-java-5.1.31-bin.jar_com.mysql.jdbc.Driver_5_1
4.17. Alterações de configurações de servidor de segurança [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Se você migrar para o JBoss EAP 7 e planejar executar com o Java Security Manager ativado, deve estar ciente de que as alterações foram feitas na maneira como as políticas são definidas e que mudanças adicionais na configuração podem ser necessárias. Também esteja ciente de que os gerenciadores de segurança customizados não são suportados no JBoss EAP 7.
Para obter informações sobre as alterações de configuração do servidor Java Security Manager, consulte Considerações que se movem de versões anteriores dentro Como configurar a segurança do servidor para o JBoss EAP.
4.17.1. Mudanças no Comportamento de Segurança Legado entre o JBoss EAP 7.0 e o JBoss EAP 7.1 [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
4.17.1.1. Alteração de status HTTP para domínios LDAP inacessíveis [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Se nenhum domínio LDAP fosse acessível pelo servidor no JBoss EAP 7.0, o security subsistema retornou um código de status HTTP de "401 Não Autorizado". Isso mudou no JBoss EAP 7.1. O legado security O subsistema no JBoss EAP 7.1 retorna um código de status HTTP de "500 Internal Error" para descrever com mais precisão que ocorreu uma condição inesperada que impedia o servidor de processar a solicitação com êxito.
4.17.1.2. Habilitando o domínio de segurança do LDAP para analisar funções de um DN [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
No JBoss EAP 7.0, o org.jboss.as.domain.management.security.parseGroupNameFromLdapDN A propriedade system foi usada para permitir que a região de segurança LDAP analise as funções de um DN. Quando esta propriedade foi definida como true, papéis foram analisados a partir de um DN. Caso contrário, uma pesquisa LDAP normal foi usada para procurar por funções.
No JBoss EAP 7.1, esta propriedade do sistema agora está obsoleta. Em vez disso, você configura essa opção definindo o recém-introduzido parse-group-name-from-dn atribuir a true no caminho do serviço principal usando o seguinte comando da CLI de gerenciamento:
/core-service=management/security-realm=REALM_NAME/authorization=ldap/group-search=principal-to-group:add(parse-group-name-from-dn=true)
/core-service=management/security-realm=REALM_NAME/authorization=ldap/group-search=principal-to-group:add(parse-group-name-from-dn=true)
4.17.1.3. Mudanças no envio do certificado SSL do JBoss EAP para um servidor LDAP [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
No JBoss EAP 7.0, quando a interface de gerenciamento é configurada para usar o ldapSSL região de segurança, a autenticação mútua entre o servidor e o LDAP pode falhar, resultando em uma falha de autenticação na interface de gerenciamento. Isso ocorre porque duas conexões LDAP diferentes são feitas, cada uma por um encadeamento diferente, e elas não compartilham as sessões SSL.
O JBoss EAP 7.1 apresenta um novo booleano always-send-client-cert atributo de gerenciamento no LDAP outbound-connection. Esta opção permite a configuração de conexões LDAP de saída para suportar servidores LDAP configurados para sempre exigir um certificado de cliente.
A autenticação LDAP acontece em duas etapas:
- Ele procura pela conta.
- Verifica as credenciais.
Por padrão, o always-send-client-cert atributo está definido como false, o que significa que o certificado SSL do cliente é enviado apenas com a primeira solicitação de conta de pesquisa. Quando este atributo está configurado para true, o cliente LDAP do JBoss EAP envia o certificado do cliente para o servidor LDAP com as solicitações de pesquisa e verificação.
Você pode definir esse atributo para true usando o seguinte comando CLI de gerenciamento.
/core-service=management/ldap-connection=my-ldap-connection:write-attribute(name=always-send-client-cert,value=true)
/core-service=management/ldap-connection=my-ldap-connection:write-attribute(name=always-send-client-cert,value=true)
Isso resulta na seguinte conexão de saída LDAP no arquivo de configuração do servidor.
4.17.2. Mudanças no modo FIPS [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Mudanças no Comportamento de Segurança Legado entre o JBoss EAP 7.0 e o JBoss EAP 7.1 [Esta é uma tradução automática]
Ao usar regiões de segurança legadas, o JBoss EAP 7.1 fornece a geração automática de um certificado autoassinado para fins de desenvolvimento. Este recurso, que não estava disponível no JBoss EAP 7.0, é ativado por padrão. Isso significa que, se você estiver executando no modo FIPS, deverá configurar o servidor para desativar a criação automática de certificado autoassinado. Caso contrário, você poderá ver o seguinte erro ao iniciar o servidor.
ERROR [org.xnio.listener] (default I/O-6) XNIO001007: A channel event listener threw an exception: java.lang.RuntimeException: WFLYDM0114: Failed to lazily initialize SSL context ... Caused by: java.lang.RuntimeException: WFLYDM0112: Failed to generate self signed certificate ... Caused by: java.security.KeyStoreException: Cannot get key bytes, not PKCS#8 encoded
ERROR [org.xnio.listener] (default I/O-6) XNIO001007: A channel event listener threw an exception: java.lang.RuntimeException: WFLYDM0114: Failed to lazily initialize SSL context
...
Caused by: java.lang.RuntimeException: WFLYDM0112: Failed to generate self signed certificate
...
Caused by: java.security.KeyStoreException: Cannot get key bytes, not PKCS#8 encoded
Para obter informações sobre criação automática de certificado autoassinado, consulte Criação automática de certificado autoassinado para aplicativos dentro Como configurar a segurança do servidor para o JBoss EAP.
4.18. Alterações do subsistema de transações [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Alguns atributos de configuração do Gerenciador de Transações que estavam disponíveis no transactions O subsistema no JBoss EAP 6 foi alterado no JBoss EAP 7.
Alterações do subsistema de transações [Esta é uma tradução automática]
A tabela a seguir lista os atributos do JBoss EAP 6 que foram removidos do transactions subsistema no JBoss EAP 7 e os atributos de substituição equivalentes.
| Atributo no JBoss EAP 6 | Mudanças no Cliente EJB no JBoss EAP 7 [Esta é uma tradução automática] |
|---|---|
|
path |
object-store-path |
|
relative-to |
object-store-relative-to |
Alterações do subsistema de transações [Esta é uma tradução automática]
Os seguintes atributos que estavam disponíveis no transactions O subsistema no JBoss EAP 6 está obsoleto no JBoss EAP 7. Os atributos obsoletos podem ser removidos em uma versão futura do produto. A tabela a seguir lista os atributos de substituição equivalentes.
| Atributo no JBoss EAP 6 | Mudanças no Cliente EJB no JBoss EAP 7 [Esta é uma tradução automática] |
|---|---|
|
use-hornetq-store |
use-journal-store |
|
hornetq-store-enable-async-io-to |
journal-store-enable-async-io |
|
enable-statistics |
statistics-enabled |
4.19. Changes to mod_cluster Configuration [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
A configuração para listas de proxy estáticas em mod_cluster foi alterada no JBoss EAP 7.
No JBoss EAP 6, você configurou o proxy-list atributo, que era uma lista separada por vírgulas de endereços de proxy httpd especificados no formato de hostname:port.
o proxy-list atributo está obsoleto no JBoss EAP 7. Ele foi substituído pelo proxies attribute, que é uma lista de nomes de ligação de soquete de saída.
Essa alteração afeta o modo como você define uma lista de proxy estático, por exemplo, ao desativar a publicidade de mod_cluster. Para obter informações sobre como desativar a publicidade para o mod_cluster, consulte Desativar publicidade para mod_cluster no JBoss EAP Guia de configuração.
Para obter mais informações sobre os atributos do mod_cluster, consulte Atributos do Subsistema ModCluster no JBoss EAP Guia de configuração.
4.20. Exibindo alterações na configuração [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
O JBoss EAP 7 fornece a capacidade de rastrear as alterações de configuração feitas no servidor em execução. Isso permite que os administradores visualizem um histórico de alterações de configuração feitas por usuários autorizados.
No JBoss EAP 7.0, você deve usar o core-service comando CLI de gerenciamento para configurar opções e listar alterações de configuração recentes.
Exemplo: Listar Mudanças de Configuração no JBoss EAP 7.0 [Esta é uma tradução automática]
/core-service=management/service=configuration-changes:add(max-history=10) /core-service=management/service=configuration-changes:list-changes
/core-service=management/service=configuration-changes:add(max-history=10)
/core-service=management/service=configuration-changes:list-changes
O JBoss EAP 7.1 introduziu um novo core-management subsistema que pode ser configurado para rastrear as alterações de configuração feitas no servidor em execução. Este é o método preferido de configuração e visualização de mudanças de configuração no JBoss EAP 7.1.
Exemplo: Listar Mudanças de Configuração no JBoss EAP 7.1 [Esta é uma tradução automática]
/subsystem=core-management/service=configuration-changes:add(max-history=20) /subsystem=core-management/service=configuration-changes:list-changes
/subsystem=core-management/service=configuration-changes:add(max-history=20)
/subsystem=core-management/service=configuration-changes:list-changes
Para mais informações sobre como usar o novo core-management subsistema introduzido no JBoss EAP 7.1, veja Visualizar alterações na configuração no JBoss EAP Guia de configuração.
Capítulo 5. Alterações na migração dos aplicativos [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
5.1. Alterações nos aplicativos de serviços Web [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
O JBossWS 5 traz novos recursos e melhorias de desempenho aos serviços Web do JBoss EAP 7, principalmente através de atualizações Apache CXF, Apache WSS4J, e Apache Santuario componentes.
5.1.1. Alterações de suporte JAX-RPC [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
A API Java para RPC (JAX-RPC) baseada em XML foi preterida no Java EE 6 e é opcional no Java EE 7. Ela não está mais disponível ou é suportada no JBoss EAP 7. Os aplicativos que usam JAX-RPC devem ser migrados para uso JAX-WS, que é a atual estrutura de serviços da Web padrão do Java EE.
A utilização dos serviços web JAX-RPC pode ser identificada em qualquer uma das seguintes maneiras:
-
A presença de um arquivo de mapeamento JAX-RPC, que é um arquivo XML com o elemento raiz
<java-wsdl-mapping>. A presença de um
webservices.xmlArquivo descritor XML que contém um<webservice-description>elemento, que inclui um<jaxrpc-mapping-file>elemento filho. O seguinte é um exemplo dewebservices.xmlarquivo descritor que define um serviço da Web JAX-RPC.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
A presença de um
ejb-jar.xmlarquivo, que contém um<service-ref>que faz referência a um arquivo de mapeamento JAX-RPC.
5.1.2. Alterações dos serviços web Apache CXF Spring [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Nas versões anteriores do JBoss EAP, você poderia personalizar a integração do JBossWS e do Apache CXF incluindo uma jbossws-cxf.xml arquivo de configuração com o arquivo de implantação do nó de extremidade. Um caso de uso para isso era configurar cadeias de interceptor para terminais de cliente e servidor de serviço da Web no barramento Apache CXF. Essa integração exigiu que o Spring fosse implantado no servidor do JBoss EAP.
A integração Spring não é mais suportada no JBoss EAP 7. Qualquer aplicativo que contenha jbossws-cxf.xml O arquivo de configuração do descritor deve ser modificado para substituir a configuração personalizada definida nesse arquivo. Embora ainda seja possível acessar diretamente a API do Apache CXF, esteja ciente de que o aplicativo não será portátil.
A abordagem sugerida é para substituir configurações personalizadas de Spring com as novas opções de configuração de descritor JBossWS quando possível. A abordagem baseada em descritor JBossWS fornece funcionalidade similar sem exigir modificação do código de ponto de extremidade do cliente. Em alguns casos, você pode substituir Spring por Context Dependency Injection (CDI).
Migrar interceptores de mensagem [Esta é uma tradução automática]
O descritor JBossWS fornece novas opções de configuração que permitem declarar os interceptores sem modificar o código do terminal do cliente. Em vez disso, você declara interceptores dentro de configurações predefinidas de cliente e nó de extremidade especificando uma lista de nomes de classe de interceptor para o cxf.interceptors.in e cxf.interceptors.out propriedades.
O seguinte é um exemplo de um jaxws-endpoint-config.xml arquivo que declara interceptores usando essas propriedades.
Recursos Apache CXF
O descritor JBossWS permite que você declare recursos dentro de configurações predefinidas de cliente e terminal, especificando uma lista de nomes de classes de cxf.features propriedade.
O seguinte é um exemplo de um jaxws-endpoint-config.xml arquivo que declara um recurso usando essa propriedade.
Apache CXF HTTP Transport
No Apache CXF, a configuração de transporte HTTP é obtida especificando org.apache.cxf.transport.http.HTTPConduit opções. A integração do JBossWS permite que as condutas sejam modificadas programaticamente usando a API Apache CXF da seguinte forma.
Você também pode controlar e substituir o Apache CXF HTTPConduit valores padrão, definindo as propriedades do sistema.
| Propriedade | Tipo | Descrição |
|---|---|---|
|
cxf.client.allowChunking |
Boolean |
Especifica se envia uma solicitações usando agrupamento |
|
cxf.client.chunkingThreshold |
Integer |
Define o limite no qual é feita a alteração do modo sem agrupamento para o modo de agrupamento. |
|
cxf.client.connectionTimeout |
Long |
Define o número de milissegundos de tempo limite da conexão. |
|
cxf.client.receiveTimeout |
Long |
Define o número de milissegundos para expirar a recepção. |
|
cxf.client.connection |
String |
Especifica se deve usar o |
|
cxf.tls-client.disableCNCheck |
Boolean |
Especifica a desativação da verificação de nome de host CN. |
5.1.3. Alterações WS-Security Copiar o linkLink copiado para a área de transferência!
-
Se o seu aplicativo contiver um manipulador de retorno de chamada personalizado que acessa o
org.apache.ws.security.WSPasswordCallbackclasse, esteja ciente de que esta classe foi movida para o pacoteorg.apache.wss4j.common.ext. -
A maioria dos objetos de bean SAML do
org.apache.ws.security.saml.extpacote foram movidos para oorg.apache.wss4j.common.saml package. - O uso de transporte de chave RSA v1.5 e todos dos algoritmos relacionados não são permitidos por padrão.
-
O Security Token Service (STS) anteriormente validado apenas
onBehalfOffichas. Agora também validaActAsfichas. Como conseqüência, um nome de usuário e senha válidos devem ser especificados noUsernameTokenque é fornecido para oActAssímbolo. -
Agora, os tokens SAML Bearer precisam ter uma assinatura interna. o
org.apache.wss4j.dom.validate.SamlAssertionValidatorclasse agora tem umsetRequireBearerSignature()método para ativar ou desativar a verificação de assinatura.
5.1.4. Alterações de estruturas de módulos JBoss [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
o cxf-api e cxf-rt-core JARs foram fundidos em um cxf-core JAR. Como conseqüência, org.apache.cxf módulo no JBoss EAP agora contém o cxf-core JAR e expõe mais classes do que na versão anterior.
5.1.5. Alterações e requisitos de Bouncy Castle [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Se você quiser usar criptografia AES com Galois/Counter Mode (GCM) para criptografia simétrica em XML/WS-Security, você precisa do provedor de segurança BouncyCastle.
O JBoss EAP 7 vem com o org.bouncycastle módulo e JBossWS agora é capaz de confiar em seu carregador de classe para obter e usar o provedor de segurança BouncyCastle. Portanto, não é mais necessário instalar estaticamente o BouncyCastle na JVM atual. Para aplicativos em execução fora do contêiner, o provedor de segurança pode ser disponibilizado para o JBossWS adicionando uma biblioteca BouncyCastle ao caminho da classe.
Você pode desativar esse comportamento definindo org.jboss.ws.cxf.noLocalBC valor da propriedade para true no jaxws-endpoint-config.xml arquivo descritor de implementação para o servidor ou o jaxws-client-config.xml arquivo descritor para clientes.
Se você quiser uma versão diferente daquela que é enviada com o JBoss EAP, você ainda pode instalar estaticamente o BouncyCastle para a JVM. Neste caso, o provedor de segurança BouncyCastle é escolhido entre o provedor presente no caminho da classe. Para evitar quaisquer problemas, você deve usar BouncyCastle 1.49, 1.51 ou versão superior.
5.1.6. Estratégia de seleção de barramento Apache CXF [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
A estratégia de seleção de barramento padrão para clientes em execução no container foi alterada de THREAD_BUS para TCCL_BUS. Para clientes que estão ficando sem contêiner, a estratégia padrão ainda é THREAD_BUS. Você pode restaurar o comportamento para o release anterior usando um dos seguintes métodos.
-
Inicialize o servidor do JBoss EAP com a propriedade do sistema
org.jboss.ws.cxf.jaxws-client.bus.strategyvalor definido comoTHREAD_BUS. - Defina explicitamente a estratégia de seleção no código do cliente.
5.1.7. Requisitos JAX-WS 2.2 para WebServiceRef [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Os contêineres devem usar os construtores de estilo JAX-WS 2.2, que incluem o WebServiceFeature class como um argumento no construtor, para construir clientes que são injetados em referências de serviço da web. O JBoss EAP 6.4, que acompanha o JBossWS 4, oculta esse requisito. O JBoss EAP 7 é fornecido com o JBossWS 5, que não oculta mais esse requisito. Isso significa que as classes de serviço fornecidas pelo usuário devem implementar o JAX-WS 2.2 ou posterior, atualizando o código existente para usar o javax.xml.ws.Service construtor que inclui um ou mais WebServiceFeature argumentos.
protected Service(URL wsdlDocumentLocation,
QName serviceName,
WebServiceFeature... features)
protected Service(URL wsdlDocumentLocation,
QName serviceName,
WebServiceFeature... features)
5.1.8. Alterações de verificação CN IgnoreHttpsHost [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Em versões anteriores, você poderia desabilitar a verificação de nome de host de URL HTTPS em relação ao Nome Comum (CN) de um serviço fornecido em seu certificado, definindo a propriedade do sistema org.jboss.security.ignoreHttpsHost para true. Este nome de propriedade do sistema foi substituído por cxf.tls-client.disableCNCheck.
5.1.9. Configuração lado cliente e carregamento de classe [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Como consequência da ativação de injeções em manipuladores de clientes de serviço e de terminal, não é mais possível carregar automaticamente classes do manipulador org.jboss.as.webservices.server.integration Módulo JBoss. Se seu aplicativo depender de uma determinada configuração predefinida, talvez seja necessário definir explicitamente novas dependências do módulo para sua implementação. Para mais informações, veja Migrar Dependências de Módulo Explícito
5.1.10. O mecanismo de substituição de standards endossados Java está descontinuado. [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
o Mecanismo de substituição de padrões endossados por Java foi preterido no JDK 1.8_40 com a intenção de removê-lo no JDK 9. Esse mecanismo permitiu que os desenvolvedores disponibilizassem as bibliotecas para todos os aplicativos implementados, colocando JARs em um diretório endossado dentro do JRE.
Se seu aplicativo utiliza implementações JBossWS de Apache CXF, o JBoss EAP 7 assegura que as dependências necessárias sejam adicionadas na ordem correta e esta alteração não deve causar impacto para você. Se seu aplicativo acessa Apache CXF diretamente, você deve fornecer agora as dependências Apache CXF depois das dependências JBossWS como parte da implantação de seu aplicativo.
5.1.11. Especificação de descritor no arquivo EAR [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Nas versões anteriores do JBoss EAP, você poderia configurar o jboss-webservices.xml arquivo descritor de implementação para implantações de serviços da Web EJB no META-INF/ diretório de arquivos JAR ou no WEB-INF/ diretório para implementações de serviço da web POJO e terminais de serviço da Web EJB agrupados em arquivos WAR.
No JBoss EAP 7, agora você pode configurar o jboss-webservices.xml arquivo descritor de implementação no META-INF/ diretório de um arquivo EAR. Se um jboss-webservices.xml arquivo é encontrado no arquivo EAR e no arquivo JAR ou WAR, os dados de configuração no arquivo jboss-webservices.xml O arquivo para o JAR ou WAR substitui os dados correspondentes no arquivo do descritor EAR.
5.2. Atualize a porta e conector URL remoto [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
No JBoss EAP 7, o conector padrão foi alterado de remote para http-remoting e a porta de conexão remota padrão foi alterada de 4447 para 8080. A URL do provedor JNDI para a configuração padrão foi alterada de remote://localhost:4447 para http-remoting://localhost:8080.
Se você usa o JBoss EAP 7 migrate operação para atualizar sua configuração, você não precisa modificar o conector remoto, a porta remota ou as URLs do provedor JNDI porque a operação de migração preserva o conector de comunicação remota do JBoss EAP 6 e 4447 configurações de porta na configuração do subsistema. Para mais informações sobre o migrate operação, consulte Operação de Migração do CLI de Gerenciamento.
Se você não usar o migrate operação e, em vez disso, executar com a nova configuração padrão do JBoss EAP 7, você deve alterar o conector remoto, porta remota e URL do provedor de JNDI para usar as novas configurações conforme descrito acima.
5.3. Alterações de aplicativos de mensagens [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
5.3.1. Substituir ou atualizar descritores de implantação JMS [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Os arquivos proprietários do descritor de implementação de recursos do HornetQ JMS identificados pelo padrão de nomenclatura -jms.xml não funciona mais no JBoss EAP 7. A seguir, um exemplo de um arquivo descritor de implantação de recurso JMS no JBoss EAP 6.
Se você usou -jms.xml Descritores de implementação JMS em seu aplicativo no release anterior, você pode converter seu aplicativo para usar o descritor de implementação padrão do Java EE 7, conforme especificado na seção EE.5.18 do Especificação Java EE 7 ou você pode atualizar o descritor de implantação para usar o messaging-activemq-deployment esquema em vez disso.
Se você escolher atualizar o descritor, você precisa fazer as seguintes modificações.
- Altere o espaço de nomes de "urn:jboss:messaging-deployment:1.0" para "urn:jboss:messaging-activemq-deployment:1.0".
-
Mudar o
<hornetq-server>nome do elemento para<server>.
O arquivo modificado deve parecer com o exemplo que segue.
Para obter informações sobre alterações de configuração do servidor relacionadas a mensagens, consulte Alterações na configuração do servidor de mensagens.
5.3.2. Atualizar clientes externo JMS [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
JBoss EAP 7 ainda suporta API JMS 1.1, assim você não precisa modificar seu código.
O conector e a porta remotos padrão foram alterados no JBoss EAP 7. Para obter detalhes sobre essa alteração, consulte Atualizar o conector e porta de URL remoto.
Se você migrar a configuração do servidor usando o migrate operação, as configurações antigas são preservadas e você não precisa atualizar PROVIDER_URL. No entanto, se você executar com a nova configuração padrão do JBoss EAP 7, você deve alterar PROVIDER_URL no código do cliente para usar o novo http-remoting://localhost:8080 configuração. Para mais informações, veja Migrar o código do cliente de nomeação remota.
Se você planeja migrar seu código para usar a API do JMS 2.0, consulte helloworld-jms início rápido para um exemplo de trabalho.
5.3.3. Substitua a API HornetQ [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
O JBoss EAP 6 incluiu o org.hornetq módulo, o que lhe permitiu usar o API do HornetQ no código-fonte da sua aplicação.
Apache ActiveMQ Artemis substitui o HornetQ no JBoss EAP 7, então você deve migrar qualquer código que use a API do HornetQ para usar o Apache ActiveMQ Artemis API. As bibliotecas para esta API estão incluídas no org.apache.activemq.artemis módulo.
ActiveMQ Artemis é uma evolução do HornetQ, por isso muitos conceitos ainda são válidos.
5.4. Alterações de aplicativos JAX-RS e RESTEasy [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
O JBoss EAP 6 incluiu o RESTEasy 2, que foi uma implementação do JAX-RS 1.x.
O JBoss EAP 7.0 inclui o RESTEasy 3, que é uma implementação do JAX-RS 2.0, conforme definido pelo JSR 339: JAX-RS 2.0: A API Java para serviços da Web RESTful especificação. Para obter mais informações sobre a API Java para serviços Web RESTful, consulte o Especificação da API JAX-RS 2.0.
A versão do Jackson incluída no JBoss EAP mudou. O JBoss EAP 6 incluiu o Jackson 1.9.9. O JBoss EAP 7 e posterior agora inclui o Jackson 2.6.3 ou superior.
Esta seção descreve como essas alterações podem afetar aplicativos que usam RESTEasy ou JAX-RS.
5.4.1. Classes preteridas de RESTEasy [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Classes de corpo de mensagem e interceptores
JSR 311: JAX-RS: A API Java ™ para serviços da Web RESTful não incluiu um framework interceptador, então o RESTEasy 2 forneceu um. JSR 339: JAX-RS 2.0: A API Java para serviços da Web RESTful introduziu uma estrutura oficial de interceptador e filtro, de modo que a estrutura do interceptador incluída no RESTEasy 2 está obsoleta e é substituída pela instalação do interceptor compatível com JAX-RS 2.0 no RESTEasy 3.x. As interfaces relevantes são definidas no javax.ws.rs.ext pacote do jaxrs-api módulo.
As interfaces de interceptores seguintes são preteridas no RESTEasy 3.x.
-
o
org.jboss.resteasy.spi.interception.PreProcessInterceptorinterface é substituída pelajavax.ws.rs.container.ContainerRequestFilterinterface no RESTEasy 3.x. As seguintes interfaces e classes também foram preteridas no RESTEasy 3.x.
-
org.jboss.resteasy.spi.interception.MessageBodyReaderInterceptor -
org.jboss.resteasy.spi.interception.MessageBodyWriterInterceptor -
org.jboss.resteasy.spi.interception.MessageBodyWriterContext -
org.jboss.resteasy.spi.interception.MessageBodyReaderContext -
org.jboss.resteasy.core.interception.InterceptorRegistry -
org.jboss.resteasy.core.interception.InterceptorRegistryListener -
org.jboss.resteasy.core.interception.ClientExecutionContextImpl
-
-
o
org.jboss.resteasy.spi.interception.MessageBodyWriterInterceptorinterface é substituída pelajavax.ws.rs.ext.WriterInterceptorinterface. Além disso, algumas mudanças no
javax.ws.rs.ext.MessageBodyWriterinterface pode não ser compatível com o JAX-RS 1.x. Se seu aplicativo usou o JAX-RS 1.x, revise o código do aplicativo para certificar-se de definir@Producesou@Consumespara seus endpoints. Não fazer isso pode resultar em um erro semelhante ao seguinte.org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: Could not find MessageBodyWriter for response object of type: <OBJECT> of media type:
org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: Could not find MessageBodyWriter for response object of type: <OBJECT> of media type:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Segue um exemplo de um ponto de extremidade REST que pode causar este erro.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Para corrigir o problema, adicione a importação para
javax.ws.rs.Producese a@Producesanotação da seguinte forma.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Todos interceptores de lançamentos prévios do RESTEasy podem executar em paralelo com o novo filtro JAX-RS 2.0 e interfaces de interceptor.
Para obter mais informações sobre interceptores, consulte Interceptores RESTEasy dentro Desenvolvendo Aplicativos de Serviços da Web para o JBoss EAP.
Para mais informações sobre a nova API de substituição, consulte o RESTAasy JAX-RS 3.0.13.Final API ou mais tarde.
API Cliente
A estrutura do cliente RESTEasy em resteasy-jaxrs foi substituído pelo padrão JAX-RS 2.0 resteasy-client módulo. Como resultado, algumas classes e métodos da API do cliente RESTEasy foram descontinuados.
As seguintes classes são preteridas.
-
o
org.jboss.resteasy.client.ClientResponseFailureexceção e oorg.jboss.resteasy.client.ClientExecutoreorg.jboss.resteasy.client.EntityTypeFactoryinterfaces também são descontinuadas. Você deve substituir o
org.jboss.resteasy.client.ClientRequesteorg.jboss.resteasy.client.ClientResponseaulas comorg.jboss.resteasy.client.jaxrs.ResteasyClientejavax.ws.rs.core.Responserespectivamente.Segue um exemplo de como enviar um link header com o cliente RESTEasy em RESTEasy 2.3.x.
ClientRequest request = new ClientRequest(generateURL("/linkheader/str")); request.addLink("previous chapter", "previous", "http://example.com/TheBook/chapter2", null); ClientResponse response = request.post(); LinkHeader header = response.getLinkHeader();ClientRequest request = new ClientRequest(generateURL("/linkheader/str")); request.addLink("previous chapter", "previous", "http://example.com/TheBook/chapter2", null); ClientResponse response = request.post(); LinkHeader header = response.getLinkHeader();Copy to Clipboard Copied! Toggle word wrap Toggle overflow O seguinte é um exemplo de como executar a mesma tarefa com cliente RESTEasy em RESTEasy 3.
ResteasyClient client = new ResteasyClientBuilder().build(); Response response = client.target(generateURL("/linkheader/str")).request() .header("Link", "<http://example.com/TheBook/chapter2>; rel=\"previous\"; title=\"previous chapter\"").post(Entity.text(new String())); javax.ws.rs.core.Link link = response.getLink("previous");ResteasyClient client = new ResteasyClientBuilder().build(); Response response = client.target(generateURL("/linkheader/str")).request() .header("Link", "<http://example.com/TheBook/chapter2>; rel=\"previous\"; title=\"previous chapter\"").post(Entity.text(new String())); javax.ws.rs.core.Link link = response.getLink("previous");Copy to Clipboard Copied! Toggle word wrap Toggle overflow Veja o
resteasy-jaxrs-clientinício rápido para um exemplo de um cliente externo JAX-RS RESTEasy que interage com um serviço da Web JAX-RS.-
As classes e interfaces no
org.jboss.resteasy.client.cachepacote também são descontinuados. Eles são substituídos por classes e interfaces equivalentes noorg.jboss.resteasy.client.jaxrs.cachepacote.
Para mais informações sobre o org.jboss.resteasy.client.jaxrs Classes de API, consulte o RESTAasy JAX-RS JavaDoc.
StringConverter
o org.jboss.resteasy.spi.StringConverter A classe está obsoleta em RESTEasy 3.x. Esta funcionalidade pode ser substituída usando o JAX-RS 2.0 jax.ws.rs.ext.ParamConverterProvider classe.
5.4.2. Classes de RESTEasy removidas ou protegidas [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Métodos de adição de ResteasyProviderFactory
A maioria dos org.jboss.resteasy.spi.ResteasyProviderFactory add() métodos foram removidos ou protegidos no RESTEasy 3.0. Por exemplo, o addBuiltInMessageBodyReader() e addBuiltInMessageBodyWriter() métodos foram removidos e os addMessageBodyReader() e addMessageBodyWriter() métodos foram protegidos.
Você deve agora usar o registerProvider() e registerProviderInstance() métodos.
Classes suplementares removidas do RESTEasy 3
o @org.jboss.resteasy.annotations.cache.ServerCached anotação, que especificou a resposta para o método JAX-RS deve ser armazenada em cache no servidor, foi removida do RESTEasy 3 e deve ser removida do código do aplicativo.
5.4.3. Outras alterações de RESTEasy [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
SignedInput e SignedOuput
-
SignedInputeSignedOutputpararesteasy-cryptodeve ter oContent-Typedefinido comomultipart/signedtanto noRequestouResponseobjeto, ou usando o@Consumesou@Producesanotação. -
SignedOutputeSignedInputpode ser usado para retornarapplication/pkcs7-signatureFormato do tipo MIME na forma binária, definindo esse tipo na@Producesou@Consumesanotações. -
Se o
@Producesou@Consumesétext/plainTipo MIME,SignedOutputserá codificado em base64 e enviado como uma String.
Alterações WS-Security
Os filtros de segurança para @RolesAllowed, @PermitAll, e @DenyAll agora retorne "403 Proibido" em vez de "401 Não Autorizado".
Filtros do lado do cliente
Os novos filtros JAX-RS 2.0 lado cliente não serão limitados e executarão quando você estiver usando a API de cliente RESTEasy a partir de um lançamento prévio.
Suporte HTTP assíncrono
Como a especificação JAX-RS 2.0 adiciona suporte HTTP assíncrono usando o @Suspended anotação e o AsynResponse interface, a API proprietária do RESTEasy para HTTP assíncrono foi preterida e pode ser removida em uma versão futura do RESTEasy. Os módulos assíncronos Tomcat e JBoss Web assíncronos também foram removidos da instalação do servidor. Se você não estiver usando o contêiner Servlet 3.0 ou superior, o processamento do lado do servidor HTTP assíncrono será simulado e executado de forma síncrona no mesmo encadeamento de solicitação.
Cache do lado do servidor
A configuração do cache do lado do servidor foi alterada. por favor veja o Documentação RESTEasy Para maiores informações.
Alterações do provedor Jackson [Esta é uma tradução automática]
Nas versões anteriores do JBoss EAP, a configuração do provedor RESTEasy YAML era ativada por padrão. Isso mudou no JBoss EAP 7. O provedor YAML agora está desabilitado por padrão. Seu uso não é suportado devido a um problema de segurança no SnakeYAML biblioteca usada pelo RESTEasy para unmarshalling e deve ser ativada explicitamente no aplicativo. Para obter informações sobre como habilitar o provedor YAML em seu aplicativo e adicionar as dependências do Maven, consulte Provedor YAML dentro Desenvolvendo Aplicativos de Serviços da Web para o JBoss EAP.
Charset padrão UTF-8 no cabeçalho Content-Type
No JBoss EAP 7.1, o resteasy.add.charset parâmetro está definido como true por padrão. Você pode definir o resteasy.add.charset parâmetro para false se você não quiser que o RESTEasy adicione charset=UTF-8 para o cabeçalho de tipo de conteúdo retornado quando o método de recurso retorna um text/* ou application/xml* tipo de mídia sem um conjunto de caracteres explícito.
Para obter mais informações sobre tipos de mídia de texto e conjuntos de caracteres, consulte Tipos de mídia de texto e conjuntos de caracteres dentro Desenvolvendo Aplicativos de Serviços da Web para o JBoss EAP.
SerializableProvider
A desserialização de objetos Java de fontes não confiáveis não é segura. Por esta razão, no JBoss EAP 7, o org.jboss.resteasy.plugins.providers.SerializableProvider A classe está desabilitada por padrão e não é recomendável usar esse provedor.
Solicitações correspondentes aos métodos de recursos
No RESTEasy 3, melhorias e correções foram feitas na implementação de regras de correspondência, conforme definido na especificação JAX-RS 2.0. Em particular, foi feita uma alteração na forma como um URI ambíguo em um método de sub-recurso e um localizador de sub-recurso é tratado.
No RESTEasy 2, era possível que um localizador de sub-recursos fosse executado com sucesso mesmo quando havia outro sub-recurso com o mesmo URI. Esse comportamento estava incorreto de acordo com a especificação.
No RESTEasy 3, quando houver um URI ambíguo para um sub-recurso e um localizador de sub-recurso, chamar o sub-recurso será bem-sucedido; no entanto, chamar o localizador de sub-recurso resultará em um status HTTP 405 Method Not Allowed erro.
O exemplo a seguir contém um erro ambíguo @Path anotação em um método de sub-recurso e um localizador de sub-recurso. Observe que o URI para ambos os endpoints, anotherResource e anotherResourceLocator, é o mesmo. A diferença entre os dois pontos finais é que o anotherResource método está associado com o verbo REST, POST. o anotherResourceLocator O método não está associado a nenhum verbo REST. De acordo com a especificação, o terminal com o verbo REST, neste caso, o anotherResource método, sempre será selecionado.
5.4.4. Alterações SPI RESTEasy [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Exceções SPI
Todas exceções de falhas SPI foram preteridas e não são mais utilizadas internamente. Elas foram substituídas com a exceção JAX-RS 2.0 correspondente.
| Exceção preterida | Exceção de substituição em jaxrs-api módulo |
|---|---|
|
org.jboss.resteasy.spi.ForbiddenException |
javax.ws.rs.ForbiddenException |
|
org.jboss.resteasy.spi.MethodNotAllowedException |
javax.ws.rs.NotAllowedException |
|
org.jboss.resteasy.spi.NotAcceptableException |
javax.ws.rs.NotAcceptableException |
|
org.jboss.resteasy.spi.NotFoundException |
javax.ws.rs.NotFoundException |
|
org.jboss.resteasy.spi.UnauthorizedException |
javax.ws.rs.NotAuthorizedException |
|
org.jboss.resteasy.spi.UnsupportedMediaTypeException |
javax.ws.rs.NotSupportedException |
InjectorFactory e Registro
o InjectorFactory e Registry SPIs mudaram. Isso não deve ser um problema se você usar o RESTEasy conforme documentado e suportado.
5.4.5. Alterações do provedor Jackson [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
A versão do Jackson incluída no JBoss EAP mudou. A versão anterior do JBoss EAP incluía o Jackson 1.9.9. O JBoss EAP 7 agora inclui o Jackson 2.6.3 ou superior. Como resultado, o provedor de Jackson mudou de resteasy-jackson-provider para resteasy-jackson2-provider.
A atualização para o resteasy-jackson2-provider requer algumas alterações no pacote. Por exemplo, o pacote de anotações de Jackson mudou de org.codehaus.jackson.annotate para com.fasterxml.jackson.annotation.
Para mudar seu aplicativo para usar o provedor padrão que foi incluído na versão anterior do JBoss EAP, veja Mudando o provedor Jackson padrão dentro Desenvolvendo Aplicativos de Serviços da Web para o JBoss EAP.
5.4.6. Alterações à integração de Spring RESTEasy [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
A framework de Spring 4.0 introduziu suporte para Java 8. Se você planeja usar integração RESTEasy 3.x com Spring, certifique-se que especificou 4.2.x como a versão mínima para Spring em sua implantação pois esta é a versão estável mais recente suportada pelo JBoss EAP 7.
5.4.7. Alterações ao fornecedor RESTEasy Jettison JSON [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
O provedor JSON do RESTEasy Jettison está obsoleto no JBoss EAP 7 e não é mais adicionado às implementações por padrão. Você é encorajado a mudar para o fornecedor recomendado do RESTEasy Jackson. Se preferir continuar a usar o provedor Jettison, você deve definir uma dependência explícita para ele no jboss-deployment-descriptor.xml arquivo conforme demonstrado no exemplo a seguir.
Para obter mais informações sobre como definir dependências explícitas, consulte Adicionar uma dependência de módulo explícita a uma implantação no JBoss EAP Guia de desenvolvimento.
5.5. Alterações aos aplicativos CDI 1.2 [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
O JBoss EAP 7 inclui suporte para o CDI 1.2. Como resultado, os aplicativos escritos usando o CDI 1.0 podem ver algumas mudanças no comportamento quando migrados para o JBoss EAP 7. Esta seção resume apenas algumas dessas mudanças.
Você pode encontrar mais informações sobre Weld e CDI 1.2 nas seguintes referências:
Arquivos Bean
As classes Bean de beans ativos devem ser implantadas nos arquivos bean para certificarmos de que estão escaneados pelo CDI para achar e processar as classes bean.
No CDI 1.0, um arquivo foi definido como um explícito arquivo de feijão se continha um beans.xml arquivo no META-INF/ diretório para um aplicativo cliente, EJB ou biblioteca JAR, ou se continha beans.xml arquivo no WEB-INF/ diretório para um WAR.
CDI 1.1 introduzido implícito arquivos de bean, que são arquivos que contêm uma ou mais classes de bean com uma anotação de definição de bean ou um ou mais beans de sessão. Os arquivos de beans implícitos são verificados pelo CDI e, durante a descoberta de tipos, somente classes com anotações de definição de bean são descobertas. Para mais informações, veja Tipo e Descoberta de Feijão dentro Contextos e Injeção de Dependência para a plataforma Java EE.
Um arquivo de beans possui um modo de descoberta de all, annotated ou none. Um arquivo de bean que contém um beans.xml arquivo sem versão tem um modo de descoberta de bean padrão all. Um arquivo de bean que contém um beans.xml arquivo com versão 1.1 ou mais tarde deve especificar o bean-discovery-mode atributo. O valor padrão para o atributo é annotated.
Um arquivo não é um arquivo bean nos seguintes casos:
-
Ele contém um
beans.xmlarquivo com umbean-discovery-modedonone. -
Ele contém uma extensão CDI sem
beans.xmlArquivo.
Um arquivo é um explícito arquivo de feijão nos seguintes casos:
-
O arquivo contém um
beans.xmlarquivo com um número de versão de 1.1 ou posterior e umbean-discovery-modedoall. -
O arquivo contém um
beans.xmlarquivo sem número de versão. -
Exemplo: Bandeira de Anotação no
jboss-deployment-structure.xmlArquivo [Esta é uma tradução automática]
Um arquivo é um implícito arquivo de feijão nos seguintes casos:
-
O arquivo contém uma ou mais classes de bean com uma anotação de definição de bean ou um ou mais beans de sessão, mesmo que ele não contenha
beans.xmlArquivo. -
O arquivo contém um
beans.xmlarquivo com umbean-discovery-modedoannotated.
CDI 1.2 limitado Anotações de definição de bean para o seguinte:
-
@ApplicationScoped,@SessionScoped,@ConversationScoped, e@RequestScopedanotações - Todos os outros tipos de escopos normais.
-
Exemplo:
@DateBridgee@CalendarBridgeAnotação [Esta é uma tradução automática] -
Todas as anotações de estereótipo, que são anotações anotadas com
@Stereotype -
Exemplo:
@IndexedEmbeddedAnotação [Esta é uma tradução automática]
Para obter mais informações sobre arquivos de bean, consulte Arquivos de Feijão dentro Contextos e Injeção de Dependência para a plataforma Java EE.
Esclarecimento de resolução de conversação
O ciclo de vida do contexto de conversação foi alterado para evitar conflitos com a especificação Servlet, conforme descrito em Edição de Especificação CDI CDI-411. O escopo de conversação está ativo durante todas as solicitações de servlet e não deve impedir que outros servlets ou filtros de servlet definam o corpo do pedido ou a codificação de caracteres.
Resolução por observação
A resolução de evento foi parcialmente reescrita em CDI 1.2. Em CDI 1.0, um evento é entregue a um método de observação se o método de observação possui todos os qualificadores de evento. Em CDI 1.2, um evento é entregue a um método de observação se o método de observação não possui qualificadores de evento ou possui um subconjunto dos qualificadores de evento.
5.6. Migrar as dependências de módulo explicito [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
A introdução do sistema modular de carregamento de classes e dos JBoss Modules na versão anterior do JBoss EAP permitiu um controle refinado das classes disponíveis para os aplicativos. Esse recurso permitia que você configurasse dependências explícitas do módulo usando o aplicativo MANIFEST.MF arquivo ou o jboss-deployment-structure.xml arquivo descritor de implantação.
Se você definiu dependências de módulo explícito em seu aplicativo, você deve estar ciente das seguintes alterações no JBoss EAP 7.
Verifique dependências para disponibilidade
Os módulos que estão incluídos no JBoss EAP foram alterados. Quando você migrar seu aplicativo para o JBoss EAP 7, revise seu MANIFEST.MF e jboss-deployment-structure.xml entradas de arquivo para certificar-se de que eles não se referem a nenhum módulo que foi removido deste release do produto.
Dependências que requerem scan de anotação
No release anterior do JBoss EAP, se sua dependência continha anotações que precisavam ser processadas durante a verificação de anotação, como ao declarar EJB Interceptors, era necessário gerar e incluir um índice Jandex em um novo arquivo JAR e, em seguida, definir um sinalizador a MANIFEST.MF ou jboss-deployment-structure.xml arquivo descritor de implantação.
O JBoss EAP 7 agora fornece geração automática de índices de anotação em tempo de execução para módulos estáticos, assim você não precisa mais gerá-los manualmente. No entanto, você ainda precisa adicionar annotations bandeira para o aplicativo MANIFEST.MF arquivo ou o jboss-deployment-structure.xml arquivo descritor de implantação, conforme demonstrado abaixo.
Exemplo: Bandeira de Anotação no MANIFEST.MF Arquivo [Esta é uma tradução automática]
Dependências: com.company.my-ejb annotations, com.company.other
Dependências: com.company.my-ejb annotations, com.company.other
Exemplo: Bandeira de Anotação no jboss-deployment-structure.xml Arquivo [Esta é uma tradução automática]
5.7. Alterações de migração JPA e Hibernate [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
5.7.1. Hibernate ORM 3.0 [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
As classes de integração que facilitaram a utilização do Hibernate ORM 3 em lançamentos prévios foram removidas do JBoss EAP 7. Se seu aplicativo ainda utiliza bibliotecas do Hibernate ORM 3, é altamente recomendável que você migre seu aplicativo para utilizar Hibernate ORM 5 pois Hibernate ORM 3 não funcionará mais em JBoss EAP facilmente. Se você não pode migrar para Hibernate ORM 5, você deve definir um módulo JBoss personalizado para os JARs de Hibernate ORM 3 e excluir as classes de Hibernate ORM 5 de seu aplicativo.
5.7.2. Hibernate ORM 4.0 - 4.3 [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Caso seu aplicativo necessite que o cache de segundo nível seja ativado, você deve migrar para Hibernate ORM 5.0, que é integrado com Infinispan 8.x.
As aplicações escritas com o Hibernate ORM 4.x ainda podem usar o Hibernate ORM 4.x. Você deve definir um módulo JBoss personalizado para os JARs ORM 4.x do Hibernate e excluir as classes Hibernate ORM 5 do seu aplicativo. No entanto, é altamente recomendável que você reescreva o código do aplicativo para usar o Hibernate ORM 5. Para obter informações sobre como migrar para o Hibernate ORM 5, consulte Migrando para o Hibernate ORM 5.
5.7.3. Migrando para Hibernate ORM 5 [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Esta seção destaca as alterações que você precisa fazer ao migrar do Hibernate ORM versão 4.3 para a versão 5. Para obter mais informações sobre as mudanças implementadas entre o Hibernate ORM 4 e o Hibernate ORM 5, consulte Guia de migração do Hibernate ORM 5.0.
Classes preteridas de RESTEasy [Esta é uma tradução automática]
As seguintes classes reprovadas foram removidas do Hibernate ORM 5:
Outras alterações às classes e pacotes
-
o
org.hibernate.integrator.spi.IntegratorInterface alterada para dar conta de redesenho bootstrap. -
Um novo pacote
org.hibernate.engine.jdbc.env.spifoi criado. Ele contém oorg.hibernate.engine.jdbc.env.spi.JdbcEnvironmentinterface, que foi extraída doorg.hibernate.engine.jdbc.spi.JdbcServicesinterface. -
Um novo
org.hibernate.boot.model.relational.ExportableProducerinterface foi introduzida que afetaráorg.hibernate.id.PersistentIdentifierGeneratorimplementações. -
A assinatura de
org.hibernate.id.Configurablefoi alterado para aceitarorg.hibernate.service.ServiceRegistryem vez de apenasorg.hibernate.dialect.Dialect. -
o
org.hibernate.metamodel.spi.TypeContributorinterface migrou paraorg.hibernate.boot.model.TypeContributor. -
o
org.hibernate.metamodel.spi.TypeContributionsinterface migrou paraorg.hibernate.boot.model.TypeContributions.
Type Handling
-
Construídas em
org.hibernate.type.descriptor.sql.SqlTypeDescriptorimplementações não mais se registram automaticamenteorg.hibernate.type.descriptor.sql.SqlTypeDescriptorRegistry. Aplicativos usando personalizadoSqlTypeDescriptorimplementações que estendem as implementações internas e dependem desse comportamento devem ser atualizadas para chamarSqlTypeDescriptorRegistry.addDescriptor()si mesmos. -
Para IDs definidos como UUIDs gerados, alguns bancos de dados exigem que você defina explicitamente
@Column(length=16)para gerarBINARY(16)para que as comparações funcionem corretamente. -
Para
EnumTypemapeamentos definidos nohbm.xml, onde você querjavax.persistence.EnumType.STRINGname-mapping, esta configuração deve ser declarada explicitamente usando ouseNamed(true)configuração ou especificando um VARCHAR valor de12.
Alterações do subsistema de transações [Esta é uma tradução automática]
-
A transação SPI passou por uma grande reformulação no Hibernate ORM 5. No Hibernate ORM 4.3, você usou o
org.hibernate.TransactionAPI para acessar diretamente diferentes estratégias de transação de back-end. O Hibernate ORM 5 introduziu um nível de indireção. No back-end, oorg.hibernate.Transactionimplementação agora fala com umorg.hibernate.resource.transaction.TransactionCoordinator, que representa o contexto transacional para uma determinada sessão de acordo com a estratégia de backend. Embora isso não tenha um impacto direto nos desenvolvedores, isso pode afetar a configuração do bootstrap. Anteriormente, os aplicativos especificariamhibernate.transaction.factory_classpropriedade, que agora está obsoleta, e se refere a umorg.hibernate.engine.transaction.spi.TransactionFactoryFQN (nome totalmente qualificado). Com o Hibernate ORM 5, você especifica ohibernate.transaction.coordinator_classconfiguração e consulte umorg.hibernate.resource.transaction.TransactionCoordinatorBuilder. Vejoorg.hibernate.cfg.AvailableSettings.TRANSACTION_COORDINATOR_STRATEGYpara detalhes adicionais. Os nomes abreviados a seguir agora são reconhecidos:
-
jdbc: Gerenciar transações usando o JDBC
java.sql.Connection. Este é o padrão para transações não-JPA. jta: Gerenciar transações usando o JTA.
ImportanteSe um aplicativo JPA não fornecer uma configuração para o
hibernate.transaction.coordinator_classpropriedade, o Hibernate irá construir automaticamente o coordenador de transação apropriado com base no tipo de transação para a unidade de persistência.Se um aplicativo não-JPA não fornecer uma configuração para o
hibernate.transaction.coordinator_classpropriedade, o Hibernate será o padrãojdbcpara gerenciar as transações. Esse padrão causará problemas se o aplicativo realmente usar transações baseadas em JTA. Um aplicativo não-JPA que usa transações baseadas em JTA deve definir explicitamentehibernate.transaction.coordinator_classvalor da propriedade parajtaou fornecer um costumeorg.hibernate.resource.transaction.TransactionCoordinatorBuilderque constrói umorg.hibernate.resource.transaction.TransactionCoordinatorque coordena corretamente com transações baseadas em JTA.
-
jdbc: Gerenciar transações usando o JDBC
Alterações no Hibernate Search [Esta é uma tradução automática]
-
o
cfg.xmlos arquivos são novamente totalmente analisados e integrados a eventos, segurança e outras funções. -
As propriedades carregadas do
cfg.xmlusando oEntityManagerFactorynão prefixou anteriormente nomes comhibernate. Isso agora se tornou consistente. - A configuração não é serializável.
-
o
org.hibernate.dialect.Dialect.getQuerySequencesString()O método agora recupera valores de catálogo, esquema e incremento. -
o
AuditConfigurationmodificador foi removido deorg.hibernate.envers.boot.internal.EnversService. -
o
AuditStrategyparâmetros do método foram alterados para remover o obsoletoAuditConfiguratione usar o novoEnversService. -
Várias classes e interfaces no
org.hibernate.hql.spipacote e subpacotes foram movidos para o novoorg.hibernate.hql.spi.idpacote. Isso inclui oMultiTableBulkIdStrategyclasse e oAbstractTableBasedBulkIdHandler,TableBasedDeleteHandlerImpl, eTableBasedUpdateHandlerImplinterfaces e suas subclasses. - Houve um redesenho completo de contratos de acesso a propriedade.
-
Válido
hibernate.cache.default_cache_concurrency_strategyvalores de configuração são agora definidos usando oorg.hibernate.cache.spi.access.AccessType.getExternalName()método em vez doorg.hibernate.cache.spi.access.AccessTypeconstantes de enum. Isso é mais consistente com outras configurações do Hibernate.
5.7.4. Migrando do Hibernate ORM 5.0 para o Hibernate ORM 5.1 [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Enquanto o JBoss EAP 7.0 incluía o Hibernate ORM 5.0, o JBoss EAP 7.1 agora inclui o Hibernate ORM 5.1. Esta seção destaca as diferenças e as mudanças necessárias ao migrar do Hibernate ORM versão 5.0 para a versão 5.1.
Hibernate ORM 3.0 [Esta é uma tradução automática]
Esta versão inclui muitas melhorias de desempenho e correções de bugs, que são detalhadas em Recursos do Hibernate ORM 5.1 no JBoss EAP Notas de versão 7.1.0. Para informações adicionais sobre as mudanças implementadas entre o Hibernate ORM 5.0 eo Hibernate ORM 5.1, veja o Hibernate ORM 5.1 Guia de Migração.
Mudanças no gerenciamento de JMX [Esta é uma tradução automática]
Mudanças no Cliente EJB no JBoss EAP 7 [Esta é uma tradução automática]
As mudanças de ferramentas de gerenciamento de esquema no Hibernate ORM 5.1 são principalmente focadas nas seguintes áreas:
-
Unificando o manuseio de
hbm2ddl.autoe o JPA do Hibernateschema-generationApoio, suporte. - Removendo as preocupações do JDBC do SPI para facilitar a substituição real do Hibernate OGM, um mecanismo de persistência que fornece suporte ao Java Persistence (JPA) para armazenamentos de dados NoSQL.
As alterações de ferramentas de gerenciamento de esquema devem ser apenas uma preocupação de migração para aplicativos que usam diretamente qualquer uma das seguintes classes:
-
org.hibernate.tool.hbm2ddl.SchemaExport -
org.hibernate.tool.hbm2ddl.SchemaUpdate -
org.hibernate.tool.hbm2ddl.SchemaValidator -
org.hibernate.tool.schema.spi.SchemaManagementToolou qualquer um dos seus delegados
Mudanças de Configuração de Mensagens no JBoss EAP 7.1 [Esta é uma tradução automática]
O Hibernate ORM 5.1.10, incluído no JBoss EAP 7.1, introduziu uma nova estratégia para recuperar tabelas de banco de dados que melhoram SchemaMigrator e SchemaValidator desempenho. Esta estratégia executa uma única java.sql.DatabaseMetaData#getTables(String, String, String, String[]) ligue para determinar se cada javax.persistence.Entity tem uma tabela de banco de dados mapeada. Esta é a estratégia padrão, e usa o hibernate.hbm2ddl.jdbc_metadata_extraction_strategy=grouped configuração de propriedade. Essa estratégia pode exigir hibernate.default_schema e / ou hibernate.default_catalog ser provido.
Para usar a estratégia antiga, que executa uma java.sql.DatabaseMetaData#getTables(String, String, String, String[]) chamar para each javax.persistence.Entity, use o hibernate.hbm2ddl.jdbc_metadata_extraction_strategy=individually configuração de propriedade.
5.8. Alterações no Hibernate Search [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
A versão do Hibernate Search fornecida com JBoss EAP 7 foi alterada. O lançamento prévio do JBoss EAP fornecia Hibernate Search 4.6.x. O JBoss EAP 7 fornece Hibernate Search 5.5.x.
O Hibernate Search 5.5 é construído sobre o Apache Lucene 5.3.1. Se você usa APIs nativas do Lucene, lembre-se de alinhar com essa versão. o Hibernate Search 5.5 API envolve e oculta a complexidade de muitas das alterações da API do Lucene feitas entre a versão 3 e a versão 5; No entanto, algumas classes agora são reprovadas, renomeadas ou reempacotadas. Esta seção descreve como essas alterações podem afetar o código do seu aplicativo.
Alterações no Hibernate Search [Esta é uma tradução automática]
Indexing of id Fields of Embedded Relations
Ao usar um @IndexedEmbedded anotação para incluir campos de uma entidade relacionada, o id da entidade relacionada não está mais incluída. Você pode ativar a inclusão do id usando o includeEmbeddedObjectId atributo do @IndexedEmbedded anotação.
Exemplo: @IndexedEmbedded Anotação [Esta é uma tradução automática]
@IndexedEmbedded(includeEmbeddedObjectId=true)
@IndexedEmbedded(includeEmbeddedObjectId=true)
Alterações de migração JPA e Hibernate [Esta é uma tradução automática]
Números e datas agora são indexados como campos numéricos por padrão. Propriedades do tipo int, long, float, double, e suas classes de wrapper correspondentes não são mais indexadas como strings. Em vez disso, eles agora são indexados usando a codificação numérica apropriada do Lucene. o id campos são uma exceção a essa regra. Mesmo quando eles são representados por um tipo numérico, eles ainda são indexados como uma palavra-chave de string por padrão. O uso de @NumericField agora está obsoleto, a menos que você queira especificar uma precisão personalizada para a codificação numérica. Você pode manter o antigo formato de índice baseado em sequência especificando explicitamente uma ponte de campo de codificação de cadeia de caracteres. No caso de inteiros, esta é a org.hibernate.search.bridge.builtin.IntegerBridge. Verifica a org.hibernate.search.bridge.builtin pacote para outras pontes de campo disponíveis publicamente.
Date e Calendar não são mais indexados como strings. Em vez disso, as instâncias são codificadas como valores longos representando o número de milissegundos desde 1º de janeiro de 1970, 00:00:00 GMT. Você pode alternar o formato de indexação usando o novo EncodingType enum. Por exemplo:
Exemplo: @DateBridge e @CalendarBridge Anotação [Esta é uma tradução automática]
@DateBridge(encoding=EncodingType.STRING) @CalendarBridge(encoding=EncodingType.STRING)
@DateBridge(encoding=EncodingType.STRING)
@CalendarBridge(encoding=EncodingType.STRING)
A alteração de codificação de números e datas é importante e pode ter um grande impacto no comportamento do aplicativo. Se você tiver uma consulta que segmente um campo que foi anteriormente codificado por string, mas agora está codificado numericamente, será necessário atualizar a consulta. Os campos numéricos devem ser pesquisados com um NumericRangeQuery. Você também deve se certificar de que todos os campos segmentados por facetação sejam codificados por string. Se você usar a consulta de pesquisa DSL, a consulta correta deverá ser criada automaticamente para você.
Alterações no Hibernate Search [Esta é uma tradução automática]
-
As opções de classificação foram aprimoradas e a codificação de campo especificada incorretamente para opções de classificação agora resulta em exceções de tempo de execução. O Lucene também oferece uma classificação mais eficiente se os campos usados no tipo forem conhecidos de antemão. O Hibernate Search 5.5 fornece o novo
@SortableFieldanotação e seu companheiro multi-valorizado@SortableFields. Veja o Guia de Migração do Hibernate Search 5.4 to 5.5 Para maiores informações. O Lucene
SortFieldAPI requer a seguinte alteração no código do aplicativo.No lançamento prévio do JBoss EAP, você definia o tipo do campo de classificação na consulta conforme segue.
fulltextQuery.setSort(new Sort(new SortField("title", SortField.STRING)));fulltextQuery.setSort(new Sort(new SortField("title", SortField.STRING)));Copy to Clipboard Copied! Toggle word wrap Toggle overflow O seguinte é um exemplo de como definir no JBoss EAP 7.
fulltextQuery.setSort(new Sort(new SortField("title", SortField.Type.STRING)));fulltextQuery.setSort(new Sort(new SortField("title", SortField.Type.STRING)));Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Desde a
SearchFactorysó deve ser usado pela integração ORM, foi movido dohibernate-search-enginemódulo para ohibernate-search-ormmódulo. Outros integradores devem depender exclusivamenteSearchIntegrator, que substitui o obsoletoSearchFactoryIntegrator. -
O valor enum
SpatialMode.GRIDfoi renomeado paraSpatialMode.HASH. -
FullTextIndexEventListeneragora é uma aula final. Se você atualmente estende essa classe, você deve encontrar uma solução alternativa para obter a mesma funcionalidade. -
o
hibernate-search-analyzersmódulo foi removido. A abordagem recomendada é usar diretamente o artefato apropriado do Lucene, por exemploorg.apache.lucene:lucene-analyzers-common. -
A API do controlador JMS foi alterada. A dependência de backend do JMS no Hibernate ORM foi removida para que pudesse ser usada em outros ambientes não-ORM. Uma consequência é que os implementadores de
org.hibernate.search.backend.impl.jms.AbstractJMSHibernateSearchControllerdeve ajustar-se à nova assinatura. Essa classe é uma classe interna e é recomendável usá-la como exemplo, em vez de estendê-la. -
o
org.hibernate.search.spi.ServiceProviderO SPI foi refatorado. Se você estava integrando com o contrato de serviço antigo, consulte o Hibernate Search 5.5 Javadoc doServiceManager,Service,StartableeStoppablepara detalhes sobre o novo contrato. -
Se você manteve os índices gerados pelo Lucene 3.xe não os reconstruiu com o Hibernate Search 5.0 ou posterior, você terá um
IndexFormatTooOldException. Recomenda-se reconstruir os índices com o indexador de massa. Se você não for capaz de fazer isso, tente usar o LuceneIndexUpgrader. Você deve atualizar cuidadosamente os mapeamentos do Hibernate Search, caso o comportamento padrão tenha mudado. Para mais informações, consulte o Guia de migração do Apache Lucene. - O Apache Lucene foi atualizado de 3.6 para 5.3 no JBoss EAP 7. Se o seu código importar o código do Lucene diretamente, veja o Guia de migração do Apache Lucene para detalhes das alterações. Informações adicionais também podem ser encontradas no Lucene Change Log.
-
Ao usar
@Field(indexNullAs=)Para codificar um valor de marcador nulo no índice, o tipo do marcador deve ser compatível com todos os outros valores indexados nesse mesmo campo. Por exemplo, anteriormente era possível codificar um valor nulo para campos numéricos usando uma string "null". Isso não é mais permitido. Em vez disso, você deve escolher um número para representar onullvalor, como-1. -
Melhorias significativas foram feitas no motor de lapidação. A maioria das alterações não afeta a API. A única exceção notável é que você deve agora anotar todos os campos que você pretende usar para lapidação com o
@Facetou@Facetsanotação.
Alterações no Hibernate Search [Esta é uma tradução automática]
A lista que segue é uma lista de classes de Hibernate Search que foram reempacotadas ou renomeadas.
| Pacote e anterior e classe | Novo pacote e classe |
|---|---|
|
org.hibernate.search.Environment |
org.hibernate.search.cfg.Environment |
|
org.hibernate.search.FullTextFilter |
org.hibernate.search.filter.FullTextFilter |
|
org.hibernate.search.ProjectionConstants |
org.hibernate.search.engine.ProjectionConstants |
|
org.hibernate.search.SearchException |
org.hibernate.search.exception.SearchException |
|
org.hibernate.search.Version |
org.hibernate.search.engine.Version |
Lucene - Classes renomeadase reempacotadas
Os analisadores de consulta foram movidos para um novo módulo, resultando em uma alteração de org.apache.lucene.queryParser.QueryParser para org.apache.lucene.queryparser.classic.QueryParser.
Muitos dos analisadores Lucene foram refatorados, resultando em mudanças de embalagem. Veja o Documentação do Apache Lucene para encontrar os pacotes de substituição.
Algumas classes de utilitário do Apache Solr, por exemplo TokenizerFactory ou TokenFilterFactory, foram movidos para o Apache Lucene. Se o seu aplicativo usar esses utilitários ou analisadores personalizados, você deverá localizar o novo nome do pacote no Apache Lucene.
Veja o Guia de migração do Apache Lucene Para maiores informações.
Alterações no Hibernate Search [Esta é uma tradução automática]
Para obter a lista completa de interfaces, classes, enumerações, tipos de anotações, métodos, construtores e constantes enum do Hibernate Search, consulte Hibernate Search Deprecated API documento.
Alterações no Hibernate Search [Esta é uma tradução automática]
| Interface | Descrição |
|---|---|
|
org.hibernate.search.store.IndexShardingStrategy |
Depreciado a partir do Hibernate Search 4.4. Pode ser removido na pesquisa 5. Use |
|
org.hibernate.search.store.Workspace |
Essa interface será movida e deve ser considerada uma API não pública. Para mais informações, veja HSEARCH-1915. |
Alterações no Hibernate Search [Esta é uma tradução automática]
| Classe | Descrição |
|---|---|
|
org.hibernate.search.filter.FilterKey |
As chaves de filtragem personalizadas são preteridas e estão programadas para serem removidas em Hibernate Search 6. A partir de Hibernate Search 5.1, as chaves para caching os filtros Lucene são calculadas automaticamente baseando-se nos parâmetros de filtros fornecidos. |
|
org.hibernate.search.filter.StandardFilterKey |
As chaves de filtragem personalizadas são preteridas e estão programadas para serem removidas em Hibernate Search 6. A partir de Hibernate Search 5.1, as chaves para caching os filtros Lucene são calculadas automaticamente baseando-se nos parâmetros de filtros fornecidos. |
Alterações no Hibernate Search [Esta é uma tradução automática]
| Enum | Descrição |
|---|---|
|
org.hibernate.search.annotations.FieldCacheType |
Remova o |
Alterações no Hibernate Search [Esta é uma tradução automática]
| Anotação | Descrição |
|---|---|
|
org.hibernate.search.annotations.CacheFromIndex |
Remover anotação. Não é necessário um substituto alternativo. |
|
org.hibernate.search.annotations.Key |
As chaves de cache de filtro personalizado são uma funcionalidade preterida e estão programadas para serem removidas em Hibernate Search 6. A partir de Hibernate Search 5.1, as chaves de cache de filtro são definidas automaticamente baseadas nos parâmetros de filtros, portanto não é mais necessário fornecer um objeto chave. |
Alterações no Hibernate Search [Esta é uma tradução automática]
| Método | Descrição |
|---|---|
|
org.hibernate.search.FullTextSharedSessionBuilder.autoClose() |
Sem substitução |
|
org.hibernate.search.FullTextSharedSessionBuilder.autoClose(boolean) |
Sem substitução |
|
org.hibernate.search.cfg.IndexedMapping.cacheFromIndex(FieldCacheType…) |
Isto será removido sem substituição. |
|
org.hibernate.search.cfg.EntityDescriptor.getCacheInMemory() |
Isto será removido sem substituição. |
|
org.hibernate.search.cfg.ContainedInMapping.numericField() |
Invocar |
|
org.hibernate.search.cfg.EntityDescriptor.setCacheInMemory(Map<String, Object>) |
Isto será removido sem substituição. |
|
org.hibernate.search.MassIndexer.threadsForSubsequentFetching(int) |
Este método será removido. |
|
org.hibernate.search.query.dsl.FuzzyContext.withThreshold(float) |
Use |
Alterações no Hibernate Search [Esta é uma tradução automática]
| Construtor | Descrição |
|---|---|
|
org.hibernate.search.cfg.NumericFieldMapping(PropertyDescriptor, EntityDescriptor, SearchMapping) |
Usar |
Alterações que impactam integradores avançados
Esta seção descreve alterações que não fazem parte da API pública. Isto não deve impactar o desenvolvedor comum pois estes artefatos devem ser acessados somente por integradores que estendem a framework Hibernate Search.
-
o
IndexWriterSetting.MAX_THREAD_STATESeIndexWriterSetting.TERM_INDEX_INTERVALAs constantes de enum são obsoletas. Eles afetam quais propriedades são lidas da configuração, portanto, o fato de estarem ausentes significa que as propriedades de configuração, comohibernate.search.Animals.2.indexwriter.term_index_interval = defaultagora são ignorados. O único efeito colateral é que a propriedade não é aplicada. -
o
SearchFactoryIntegratorA interface agora está obsoleta. Você deve migrar imediatamente todo o código para usarSearchIntegrator. -
o
SearchFactoryBuilderA classe agora está obsoleta. UsarSearchIntegrationBuilderem vez de. -
o
HSQuery.getExtendedSearchIntegrator()o método foi descontinuado. Pode ser possível usarSearchIntegrator, mas é preferível removê-lo completamente. -
o
DocumentBuilderIndexedEntity.getFieldCacheOption()o método foi descontinuado. Não há substituto. -
o
BuildContext.getIndexingStrategy()método é obsoleto. UsarBuildContext.getIndexingMode()em vez de. -
o
DirectoryHelper.getVerifiedIndexDir(String, Properties, boolean)método é obsoleto. UsarDirectoryHelper.getVerifiedIndexPath(java.lang.String, java.util.Properties, boolean)em vez de. A lista que segue é uma lista de classes de Hibernate Search que foram reempacotadas ou renomeadas.
Expand Pacote e anterior e classe Novo pacote e classe org.hibernate.search.engine.impl.SearchMappingBuilder
org.hibernate.search.engine.spi.SearchMappingHelper
org.hibernate.search.indexes.impl.DirectoryBasedIndexManager
org.hibernate.search.indexes.spi.DirectoryBasedIndexManager
org.hibernate.search.spi.MassIndexerFactory
org.hibernate.search.batchindexing.spi.MassIndexerFactory
org.hibernate.search.spi.SearchFactoryBuilder
org.hibernate.search.spi.SearchIntegratorBuilder
org.hibernate.search.spi.SearchFactoryIntegrator
org.hibernate.search.spi.SearchIntegrator
5.9. Migrar de beans de entidade para JPA [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Suporte para beans de entidade EJB é facultativo em Java EE 7 e não são suportados em JBoss EAP 7. Isto significa que beans de entidade de persistência gerenciada por contêiner (CMP) e persistência gerenciada pelo bean (BMP) devem ser reescritos para usar entidades Java Persistence API (JPA) quando você migrar para JBoss EAP 7.
Nas versões anteriores do JBoss EAP, os beans de entidade eram criados no código-fonte do aplicativo, estendendo javax.ejb.EntityBean classe e implementar os métodos necessários. Eles foram então configurados no ejb-jar.xml Arquivo. Um bean de entidade CMP foi especificado usando um <entity> elemento que continha um <persistence-type> elemento filho com um valor de Recipiente. Um bean de entidade BMP foi especificado usando um <entity> elemento que continha um <persistence-type> elemento filho com um valor de Feijão.
No JBoss EAP 7, você deve substituir quaisquer beans de entidade CMP e BMP em seu código por entidades JPA (Java Persistence API). Entidades JPA são criadas usando o javax.persistence. * classes e são definidos no persistence.xml Arquivo.
O que segue é um exemplo de uma classe de entidade JPA.
O seguinte é um exemplo de um persistence.xml Arquivo.
Para exemplos de trabalho de entidades JPA, consulte o bmt, cmt, e hibernate5 quickstarts que acompanham o JBoss EAP 7.
5.10. Alterações de propriedades de persistência JPA [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Uma nova propriedade de persistência jboss.as.jpa.deferdetach, foi adicionado para fornecer compatibilidade com o comportamento de persistência em releases anteriores do JBoss EAP.
o jboss.as.jpa.deferdetach property controla se o contexto de persistência com escopo de transação usado em um encadeamento de transação não JTA desanexa as entidades carregadas após cada EntityManager invocação ou se aguarda até que o contexto de persistência seja fechado, por exemplo, quando a invocação do bean de sessão terminar. O valor da propriedade é padronizado para false, ou seja, as entidades são desanexadas ou limpas após cada EntityManager invocação. Esse é o comportamento padrão correto, conforme definido no Especificação JPA. Se o valor da propriedade estiver definido como true, as entidades não são desanexadas até que o contexto de persistência seja fechado.
No JBoss EAP 5, a persistência se comportou como se jboss.as.jpa.deferdetach propriedade foi definida para true. Para obter esse mesmo comportamento ao migrar seu aplicativo do JBoss EAP 5 para o JBoss EAP 7, você deve definir jboss.as.jpa.deferdetach valor da propriedade para true na tua persistence.xml conforme mostrado no exemplo a seguir.
No JBoss EAP 6, a persistência se comportou como se jboss.as.jpa.deferdetach propriedade foi definida para false. Este é o mesmo comportamento visto no JBoss EAP 7, portanto, nenhuma mudança é necessária quando você migra seu aplicativo.
5.10.1. Mudanças de propriedade de persistência do JPA no JBoss EAP 7.1 [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
No JBoss EAP 7.0, a verificação de erro de contexto de persistência não sincronizada não era tão rigorosa quanto deveria nas áreas a seguir.
-
Um contexto de persistência gerenciado por contêiner sincronizado tinha permissão para usar um contexto de persistência estendida não sincronizada que estava associado a uma transação JTA. Em vez disso, deveria ter lançado um
IllegalStateExceptionpara impedir que o contexto de persistência não sincronizado seja usado. - Um contexto de persistência não sincronizado especificado em um descritor de implantação foi tratado como sincronizado.
Além do que, além do mais, PersistenceProperty sugestões no @PersistenceContext foram erroneamente ignorados no JBoss EAP 7.0.
Esses problemas foram abordados e corrigidos no JBoss EAP 7.1. Como essas atualizações podem resultar em uma mudança indesejada no comportamento do aplicativo, duas novas propriedades de unidade de persistência foram introduzidas no JBoss EAP 7.1 para fornecer compatibilidade com versões anteriores e preservar o comportamento anterior.
| Propriedade | Descrição |
|---|---|
|
|
Esta propriedade desativa a verificação de erros. Ele deve ser usado apenas como uma medida temporária para compatibilidade com versões anteriores em situações onde os aplicativos funcionavam no JBoss EAP 7.0 e falhavam no JBoss EAP 7.1. Como essa propriedade pode ser reprovada em uma versão futura, recomenda-se que você corrija o código do aplicativo assim que puder. |
|
|
Esta propriedade é uma alternativa para |
5.11. Migrar o código de cliente EJB [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
5.11.1. Mudanças no Cliente EJB no JBoss EAP 7 [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
O conector e a porta remotos padrão foram alterados no JBoss EAP 7. Para obter detalhes sobre essa alteração, consulte Atualizar o conector e porta de URL remoto.
Se você usou o migrate operação para migrar a configuração do servidor, as configurações antigas são preservadas e você não precisa fazer as alterações detalhadas abaixo. No entanto, se você executar com a nova configuração padrão do JBoss EAP 7, deverá fazer as seguintes alterações.
5.11.1.1. Atualize a porta de conexão remota padrão [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Altere o valor da porta de conexão remota de 4447 para 8080 no jboss-ejb-client.properties Arquivo.
Exemplo: jboss-ejb-client.properties Arquivo de propriedades [Esta é uma tradução automática]
Exemplo: JBoss EAP 6 jboss-ejb-client.properties Arquivo [Esta é uma tradução automática]
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false remote.connections=default remote.connection.default.host=localhost remote.connection.default.port=4447 remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=localhost
remote.connection.default.port=4447
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
Exemplo: JBoss EAP 7 jboss-ejb-client.properties Arquivo [Esta é uma tradução automática]
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false remote.connections=default remote.connection.default.host=localhost remote.connection.default.port=8080 remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=localhost
remote.connection.default.port=8080
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
5.11.1.2. Atualizar o conector padrão [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Se você estiver executando com a nova configuração do JBoss EAP 7, o conector padrão foi alterado de remote para http-remoting. Essa mudança impacta os clientes que usam bibliotecas de uma versão do JBoss EAP e se conectam ao servidor em uma versão diferente.
-
Se um aplicativo cliente usa a biblioteca de cliente EJB do JBoss EAP 6 e deseja se conectar ao servidor do JBoss EAP 7, o servidor deve ser configurado para expor um
remoteconector em uma porta diferente8080. O cliente deve então se conectar usando esse conector recém-configurado. Um aplicativo cliente que usa a biblioteca de cliente EJB do JBoss EAP 7 e deseja se conectar ao servidor do JBoss EAP 6 deve estar ciente de que a instância do servidor não usa o
http-remotingconector e, em vez disso, usa umremoteconector. Isso é obtido definindo uma nova propriedade de conexão do lado do cliente.Exemplo:
remotePropriedade de Conexão [Esta é uma tradução automática]remote.connection.default.protocol=remote
remote.connection.default.protocol=remoteCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.11.2. Migrar código de cliente de nomeação remota [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Se você está executando com a nova configuração padrão JBoss EAP 7, você deve modificar seu código cliente para usar a nova porta remota padrão e conector.
O exemplo seguinte é de como propriedades de nomeação remota foram especificadas no código cliente no JBoss EAP 6.
java.naming.factory.initial=org.jboss.naming.remote.client.InitialContextFactory java.naming.provider.url=remote://localhost:4447
java.naming.factory.initial=org.jboss.naming.remote.client.InitialContextFactory
java.naming.provider.url=remote://localhost:4447
O exemplo seguinte é de como especificar as propriedades de nomeação remota no código cliente no JBoss EAP 7.
java.naming.factory.initial=org.wildfly.naming.client.WildFlyInitialContextFactory java.naming.provider.url=http-remoting://localhost:8080
java.naming.factory.initial=org.wildfly.naming.client.WildFlyInitialContextFactory
java.naming.provider.url=http-remoting://localhost:8080
5.11.3. Alterações Adicionais do Cliente EJB Introduzidas no JBoss EAP 7.1 [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Enquanto o JBoss EAP 7.0 é fornecido com o JBoss EJB Client 2.1.4, o JBoss EAP 7.1 é fornecido com o JBoss EJB Client 4.0.x, que inclui várias mudanças na API.
o
org.ejb.client.EJBClientInvocationContextclass adicionou os seguintes novos métodos.Expand Método Tipo Descrição isBlockingCaller()boleano
Determine se esta invocação está atualmente bloqueando o encadeamento de chamada.
isClientAsync()boleano
Determine se o método está marcado como assíncrono do cliente, o que significa que a chamada deve ser assíncrona, independentemente de o método do lado do servidor ser assíncrono.
isIdempotent()boleano
Determine se o método está marcado como idempotente, o que significa que o método pode ser chamado mais de uma vez sem efeito adicional.
setBlockingCaller(boolean)vazio
Estabeleça se esta invocação está atualmente bloqueando o encadeamento de chamada.
setLocator(EJBLocator<T>)<T> voidDefinir o localizador para o destino de invocação.
o
org.ejb.client.EJBLocatorclass adicionou os seguintes novos métodos.Expand Método Tipo Descrição asStateful()StatefulEJBLocator<T>Devolva este localizador como um localizador com estado, se for um.
asStateless()StatelessEJBLocator<T>Devolva este localizador como um localizador sem estado, se for um.
isEntity()boleano
Determine se este é um localizador de entidades.
isHome()boleano
Determine se esse é um localizador de casas.
isStateful()boleano
Determine se este é um localizador com estado.
isStateless()boleano
Determine se esse é um localizador sem estado.
withNewAffinity(Affinity)abstract EJBLocator<T>Crie uma cópia deste localizador, mas com a nova afinidade fornecida.
Um novo
org.ejb.client.EJBClientPermissionclasse, que é uma subclasse dejava.security.Permission, foi introduzido para controlar o acesso a operações EJB privilegiadas.Ele fornece os seguintes construtores.
-
EJBClientPermission(String name) -
EJBClientPermission(String name, String actions)
-
Ele fornece os seguintes métodos.
Expand Método Tipo Descrição equals(EJBClientPermission obj)boleano
Verifica dois
EJBClientPermissionobjetos para igualdade.equals(Object obj)boleano
Verifica dois
Permissionobjetos para igualdade.equals(Permission obj)boleano
Verifica dois
Permissionobjetos para igualdade.getActions()String
Retorna as ações como uma string.
hashcode()int
Retorna o valor do código hash para este
Permissionobjeto.implies(EJBClientPermission permission)boleano
Verifica se as ações da permissão especificada são implicado por esta
EJBClientPermissionações do objeto.implies(Permission permission)boleano
Verifica se as ações da permissão especificada são implicado por esta
Permissionações do objeto.
Um novo
org.ejb.client.EJBMethodLocatorUma classe foi introduzida para localizar um método EJB específico.Ele fornece o construtor a seguir.
-
EJBMethodLocator(String methodName, String… parameterTypeNames)
-
Ele fornece os seguintes métodos.
Expand Método Tipo Descrição equals(EJBMethodLocator other)boleano
Determine se esse objeto é igual a outro.
equals(Object other)boleano
Determine se esse objeto é igual a outro.
forMethod(Method method)static EJBMethodLocatorObtenha um localizador de método para o método de reflexão fornecido.
getMethodName()String
Obtenha o nome do método.
getParameterCount()int
Obtenha a contagem de parâmetros.
getParameterTypeName(int index)String
Obtenha o nome do parâmetro no índice fornecido.
hashCode()int
Obtenha o código hash.
Um novo
org.jboss.ejb.client.EJBReceiverInvocationContext.ResultProducer.FailedA classe foi introduzida para casos de falha.Ele fornece o construtor a seguir.
-
Failed(Exception cause)
-
Ele fornece os seguintes métodos.
Expand Método Tipo Descrição discardResult()vazio
Descarte o resultado, indicando que ele não será usado.
getResult()ObjectObter o resultado
Um novo
org.jboss.ejb.client.EJBReceiverInvocationContext.ResultProducer.Immediateclasse foi introduzida para resultados imediatos.Ele fornece o construtor a seguir.
-
Failed(Exception cause)
-
Ele fornece os seguintes métodos.
Expand Método Tipo Descrição discardResult()vazio
Descarte o resultado, indicando que ele não será usado.
getResult()ObjectObter o resultado
Um novo
org.jboss.ejb.client.URIAffinityclasse, que é uma subclasse deorg.jboss.ejb.client.Affinityfoi introduzido para especificação de afinidade de URI.-
É criado usando
Affinity.forUri(URI). Ele fornece os seguintes métodos.
Expand Método Tipo Descrição equals(Affinity other)boleano
Indica se outro objeto é igual a este.
equals(Object other)boleano
Indica se outro objeto é igual a este.
equals(URIAffinity other)boleano
Indica se outro objeto é igual a este.
getURI()URI
Obtenha o URI associado.
hashCode()int
Obtenha o código hash.
toString()String
Retorna uma representação de string do objeto.
-
É criado usando
o
org.jboss.ejb.client.EJBMetaDataImplclasse depreciou os seguintes métodos.-
toAbstractEJBMetaData() -
EJBMetaDataImpl(AbstractEJBMetaData<?,?>)
-
5.12. Migrar clientes para usar o arquivo de configuração do WildFly [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Antes do release 7.1, as bibliotecas do cliente do JBoss EAP, como EJB e nomeação, usavam diferentes estratégias de configuração. O JBoss EAP 7.1 introduz o wildfly-config.xml arquivo com o objetivo de unificar todas as configurações do cliente em um único arquivo de configuração, de maneira semelhante à maneira como a configuração do servidor é tratada.
Por exemplo, antes do JBoss EAP 7.1, você pode criar um novo InitialContext para um cliente Java EJB usando um jboss-ejb-client.properties arquivo ou definindo programaticamente as propriedades usando um Properties classe.
Exemplo: jboss-ejb-client.properties Arquivo de propriedades [Esta é uma tradução automática]
No JBoss EAP 7.1, você cria um wildfly-config.xml arquivo no META-INF/ diretório do arquivo do cliente. Esta é a configuração equivalente usando um wildfly-config.xml Arquivo.
Exemplo: Configuração Equivalente Usando o wildfly-config.xml Arquivo [Esta é uma tradução automática]
Para obter informações sobre como configurar a autenticação de cliente para o Elytron Client usando o wildfly-config.xml arquivo, consulte Configurar autenticação de cliente com o cliente Elytron dentro Como configurar o gerenciamento de identidades para o JBoss EAP.
Para obter mais informações sobre os tipos de configurações do cliente que podem ser feitas usando o wildfly-config.xml arquivo, consulte Configuração do cliente usando o wildfly-config.xml Arquivo no JBoss EAP Guia de desenvolvimento.
5.13. Migrar configurações de planos de implementação [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
o Especificação de implementação de aplicativo Java EE (JSR-88) O objetivo era definir um contrato padrão para permitir que ferramentas de vários provedores configurassem e implantassem aplicativos em qualquer produto da plataforma Java EE. O contrato exigiu que os provedores de produtos Java EE implementassem o DeploymentManager e outro javax.enterprise.deploy.spi interfaces a serem acessadas pelos provedores de ferramentas. No caso do JBoss EAP 6, um plano de implementação é identificado por um descritor XML chamado deployment-plan.xml que é empacotado em um arquivo ZIP ou JAR.
Essa especificação teve pouca adoção porque a maioria dos produtos de servidor de aplicativos fornece suas próprias soluções de implantação mais "sofisticadas". Por esse motivo, o suporte a JSR-88 foi retirado do Java EE 7 e, por sua vez, do JBoss EAP 7.
Se você usou o JSR-88 para implantar seu aplicativo, deverá usar outro método para implantar o aplicativo. A CLI de gerenciamento do JBoss EAP deploy O comando fornece uma maneira padrão de implantar arquivos em servidores independentes ou em grupos de servidores em um domínio gerenciado. Para obter mais informações sobre a CLI de gerenciamento, consulte o Guia do CLI de gerenciamento.
5.14. Migrar válvulas de aplicativos personalizadas [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Você deve migrar manualmente as válvulas personalizadas ou quaisquer válvulas definidas no jboss-web.xml Arquivo XML. Isto inclui válvulas criadas pela extensão do org.apache.catalina.valves.ValveBase classe e configurado no <valve> elemento do jboss-web.xml arquivo descritor.
Válvulas e válvulas personalizadas definidas no jboss-web.xml arquivo deve ser reescrito ou substituído pelo manipulador interno Undertow correspondente. Para obter informações sobre como mapear válvulas para manipuladores Undertow, consulte Migrar Válvulas Web JBoss.
Válvulas de autenticação devem ser substituídas manualmente usando mecanismos de autenticação internos Undertow.
Migrar configurações SSL [Esta é uma tradução automática]
No JBoss EAP 6, você pode definir válvulas personalizadas no nível do aplicativo, configurando-as no jboss-web.xml arquivo descritor de aplicativo da web. No JBoss EAP 7, é possível fazer isso com manipuladores Undertow também.
Segue-se um exemplo de uma válvula configurada no jboss-web.xml arquivo no JBoss EAP 6.
Para obter mais informações sobre como criar e configurar manipuladores personalizados no JBoss EAP, consulte Criando manipuladores personalizados no JBoss EAP Guia de desenvolvimento.
Migrar válvulas do autenticador [Esta é uma tradução automática]
Para obter informações sobre como migrar as válvulas do autenticador, consulte Migrar válvulas do autenticador neste guia.
5.15. Alterações de aplicativos de segurança [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
A substituição de JBoss Web com Undertow requer alterações nas configurações de segurança no JBoss EAP 7.
5.15.1. Migrar válvulas do autenticador [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Se você criou uma válvula autenticadora personalizada que AuthenticatorBase no JBoss EAP 6.4, você deve substituí-lo manualmente por uma implementação de autenticação HTTP personalizada no JBoss EAP 7.1. O mecanismo de autenticação HTTP é criado no elytron subsistema e, em seguida, registrado com o undertow subsistema. Para obter informações sobre como implementar um mecanismo de autenticação HTTP personalizado, consulte Implementando um Mecanismo HTTP Customizado no Guia de desenvolvimento para o JBoss EAP.
5.15.2. Alterações de PicketLink [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Para obter informações sobre as alterações necessárias para o SSO com configuração do SAML v2, consulte Mudanças das versões anteriores do JBoss EAP dentro Como configurar o SSO com o SAML v2 para o JBoss EAP.
5.15.3. Outras alterações de aplicativos de segurança [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Para obter informações sobre as diferenças na configuração de SSO com o Kerberos, consulte Diferenças de Configurando Versões Anteriores do JBoss EAP dentro Como configurar o SSO com o Kerberos para o JBoss EAP.
5.16. Alterações de JBoss Logging [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Se o seu aplicativo usa o JBoss Logging, esteja ciente de que as anotações no org.jboss.logging pacote agora estão obsoletos no JBoss EAP 7. Eles foram movidos para o org.jboss.logging.annotations pacote, portanto, você deve atualizar seu código-fonte para importar o novo pacote.
As anotações também foram movidas para um Maven separado groupId:artifactId:version (GAV) ID, então você precisa adicionar uma nova dependência de projeto para org.jboss.logging:jboss-logging-annotations no seu projecto pom.xml Arquivo.
Apenas as anotações de registro foram movidas. o org.jboss.logging.BasicLogger e org.jboss.logging.Logger ainda existem no org.jboss.logging pacote.
A tabela seguinte lista as classes de anotações preteridas e substituições correspondentes.
| Classes preteridas de RESTEasy [Esta é uma tradução automática] | Classes de substituição |
|---|---|
|
org.jboss.logging.Cause |
org.jboss.logging.annotations.Cause |
|
org.jboss.logging.Field |
org.jboss.logging.annotations.Field |
|
org.jboss.logging.FormatWith |
org.jboss.logging.annotations.FormatWith |
|
org.jboss.logging.LoggingClass |
org.jboss.logging.annotations.LoggingClass |
|
org.jboss.logging.LogMessage |
org.jboss.logging.annotations.LogMessage |
|
org.jboss.logging.Message |
org.jboss.logging.annotations.Message |
|
org.jboss.logging.MessageBundle |
org.jboss.logging.annotations.MessageBundle |
|
org.jboss.logging.MessageLogger |
org.jboss.logging.annotations.MessageLogger |
|
org.jboss.logging.Param |
org.jboss.logging.annotations.Param |
|
org.jboss.logging.Property |
org.jboss.logging.annotations.Property |
5.17. Alterações ao código JavaServer Faces (JSF) [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Suporte para JSF 1.2 descontinuado
Exemplo: Bandeira de Anotação no jboss-deployment-structure.xml Arquivo [Esta é uma tradução automática]
JBoss EAP 7 inclui JSF 2.2 e não suporta mais a API JSF 1.2. Se seu aplicativo usa JSF 1.2, você deve regravá-lo para usar JSF 2.2.
Problema de compatibilidade entre JSF 2.1 e JSF 2.2
As APIs JSF 2.1 e JSF 2.2 não são totalmente compatíveis. o FACELET_CONTEXT_KEY valor constante alterado de com.sun.faces.facelets.FACELET_CONTEXT para javax.faces.FACELET_CONTEXT entre os lançamentos. Esse valor é embutido pelo compilador e o código compilado em um release não funcionará em relação ao outro.
Aplicativos que contêm código semelhante ao exemplo a seguir, e são compilados com a API do JSF 2.1, mas são executados no JBoss EAP 7, que usa a API JSF 2.2, resultando em um NullPointerException. Para corrigir o problema, você deve recompilar o aplicativo na API do JSF 2.2.
Exemplo: código Java que usa a API do JSF 2.1 [Esta é uma tradução automática]
Object obj = FacesContext.getCurrentInstance().getAttributes().get(FaceletContext.FACELET_CONTEXT_KEY);
Object obj = FacesContext.getCurrentInstance().getAttributes().get(FaceletContext.FACELET_CONTEXT_KEY);
Vejo Impedir que a constante FaceletContext.FACELET_CONTEXT_KEY seja embutida pelo compilador Para maiores informações.
5.18. Alterações ao carregamento de classes de módulos [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
No JBoss EAP 7, o comportamento do carregamento de classe foi alterado em casos onde múltiplos módulos contêm as mesmas classes ou pacotes.
Suponha que existem dois módulos, MODULE_A e MODULE_B, que dependem uns dos outros e contêm alguns dos mesmos pacotes. No JBoss EAP 6, as classes ou pacotes que foram carregados das dependências tiveram precedência sobre aqueles especificados no resource-root do module.xml Arquivo. Isso significava MODULE_A viu os pacotes para MODULE_B e MODULE_B viu os pacotes para MODULE_A. Esse comportamento foi confuso e poderia causar conflitos. Este comportamento mudou no JBoss EAP 7. Agora as classes ou pacotes especificados pelo resource-root no module.xml arquivo tem precedência sobre aqueles especificados pela dependência. Isso significa MODULE_A vê os pacotes para MODULE_A e MODULE_B vê os pacotes para MODULE_B. Isso evita conflitos e fornece um comportamento mais apropriado.
Se você tiver definido módulos personalizados que incluem resource-root bibliotecas ou pacotes que contêm classes duplicadas em suas dependências de módulo, você pode ver ClassCastException, LinkageError, erros de carregamento de classes ou outras mudanças de comportamento quando você migra para o JBoss EAP 7. Para resolver esses problemas, você deve module.xml arquivo para garantir que apenas uma versão de uma classe seja usada. Isso pode ser feito usando uma das seguintes abordagens.
-
Você pode evitar especificar um
resource-rootque duplica as classes na dependência do módulo. Você pode usar o
includeeexcludesub-elementos doimportseexportselementos para controlar o carregamento da classe nomodule.xmlArquivo. A seguir, um elemento de exportação que exclui classes está no pacote especificado.<exports> <exclude path="com/mycompany/duplicateclassespath/"/> </exports>
<exports> <exclude path="com/mycompany/duplicateclassespath/"/> </exports>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Se preferir preservar seu comportamento existente, você deve filtrar os pacotes de dependência do dependente resource-root no module.xml arquivo usando o filter elemento. Isso permite que você retenha o comportamento existente sem o loop impar que você veria no JBoss EAP 6. O seguinte é um exemplo de root-resource que filtra classes em um pacote especificado.
<resource-root path="mycompany.jar">
<filter>
<exclude path="com/mycompany/duplicateclassespath"/>
</filter>
</resource-root>
<resource-root path="mycompany.jar">
<filter>
<exclude path="com/mycompany/duplicateclassespath"/>
</filter>
</resource-root>
Para obter mais informações sobre módulos e carregamento de classes, consulte Carregamento de Classe e Módulos no JBoss EAP Guia de desenvolvimento.
5.19. Alterações à clusterização de aplicativos [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
5.19.1. Visão geral de novas funcionalidades de clusterização [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
A lista seguinte descreve algumas das novas funcionalidades de clusterização para considerar quando fizer a migração de seu aplicativo do JBoss EAP 6 para JBoss EAP 7.
- O JBoss EAP 7 introduz uma nova API pública para construir serviços singleton que simplifica significativamente o processo. Para obter informações sobre serviços singleton, consulte Serviço HA Singleton no JBoss EAP Guia de desenvolvimento
- Uma implementação de singleton pode ser configurada para implantar e iniciar somente um único nó no cluster de cada vez. Para mais informações, veja Implantações de HA Singleton no JBoss EAP Guia de desenvolvimento.
- Agora você pode definir MDBs singleton em cluster. Para mais informações, veja MDBs de Singleton agrupados dentro Desenvolvendo Aplicativos EJB para o JBoss EAP.
- O JBoss EAP 7 inclui a implementação Undertow mod_cluster. Isso oferece uma solução de balanceamento de carga Java pura que não requer um servidor da Web httpd. Para mais informações, veja Configurando o JBoss EAP como um balanceador de carga front-end no JBoss EAP Guia de configuração.
O restante desta seção descreve como as mudanças de cluster podem impactar a migração de seus aplicativos para o JBoss EAP 7.
5.19.2. Alterações nas Web Session Clustering [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
O JBoss EAP 7 introduz uma nova implementação em web session clustering. Ela substitui a implementação anterior, que era acoplada rigidamente ao código-fonte do subsistema JBoss Web herdado.
A nova implementação de clustering de sessões da Web afeta o modo como o aplicativo é configurado no jboss-web.xml Arquivo de descritor XML do aplicativo da web proprietário do JBoss EAP. A seguir estão os únicos elementos de configuração de cluster que permanecem nesse arquivo.
A tabela a seguir descreve como obter um comportamento semelhante para elementos no jboss-web.xml arquivo que agora está obsoleto.
| Mudanças de configuração de servidor [Esta é uma tradução automática] | Alterações de aplicativos de segurança [Esta é uma tradução automática] |
|---|---|
|
<max-active-sessions/> |
Anteriormente, a criação da sessão falharia se fizesse com que o número de sessões ativas excedesse o valor especificado por
Na nova implementação, |
|
<passivation-config/> |
Este elemento de configuração e seus subelementos não são mais utilizados em JBoss EAP 7. |
|
<use-session-passivation/> |
Anteriormente, a passivação era ativada utilizando este atributo.
Na nova implementação, a passivação é ativada especificando um valor não negativo para |
|
<passivation-min-idle-time/> |
Anteriormente, as sessões precisavam estar ativas por um período mínimo de tempo antes de tornarem-se candidatas à passivação. Isto poderia causar uma falha na criação de sessão, mesmo que a passivação estivesse habilitada. A nova implementação não suporta esta lógica e assim evita esta vulnerabilidade de recusa de serviço (Denial of Service - DoS) . |
|
<passivation-max-idle-time/> |
Anteriormente, uma sessão tornaria-se passiva após estar inativa por um período especifico de tempo.
A nova implementação só suporta passivação preguiçosa. Não suporta passivação ávida. As sessões só são passivadas quando necessário para cumprir |
|
<replication-config/> |
A nova implementação torna preterido um certo número de subelementos. |
|
<replication-trigger/> |
Anteriormente, esse elemento era usado para determinar quando a replicação da sessão era acionada. A nova implementação substitui essa opção de configuração por uma estratégia única e robusta. Para mais informações, veja Atributos de Sessão Imutáveis no JBoss EAP Guia de desenvolvimento. |
|
<use-jk/> |
Anteriormente, o
Na nova implementação, o |
|
<max-unreplicated-interval/> |
Anteriormente, esta opção de configuração era destinada a ser uma otimização para evitar a replicação de um carimbo de data/hora de sessão se não houvesse alteração de atributo de sessão. Isto parece bom, mas na prática não evita quaisquer RPCs, já que acesso à sessão necessita transação de cache RPCs independente de qualquer alteração de atributo de sessão. Na nova implementação, o carimbo de data/hora de uma sessão é replicado a cada solicitação. Isto previne metadados de sessões obsoletas após um failover. |
|
<snapshot-mode/> |
Anteriormente, podia-se configurar |
|
<snapshot-interval/> |
Isso só foi relevante para |
|
<session-notification-policy/> |
Anteriormente, o valor especificado por este atributo definia uma política de acionamento de eventos de sessões. Na nova implementação este comportamento é acionado na especificação e não configurável. |
Esta nova implementação também suporta armazenamentos de cache de gravação, bem como armazenamentos de cache somente de passivação. Normalmente, armazenamentos de cache de gravação é usado em conjunto com um cache de invalidação. A implementação de cluster de sessões web no JBoss EAP 6 não funcionou corretamente quando usada com um cache de invalidação.
5.19.3. Alterações em Stateful Session EJB Clustering [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
No JBoss EAP 6, era exigido que você habilitasse o comportamento do clustering para stateful session beans (SFSBs) em uma das seguintes maneiras.
Você pode adicionar o
org.jboss.ejb3.annotation.Clusteredanotação no bean de sessão.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Você pode adicionar o
<clustered>elemento para ojboss-ejb3.xmlArquivo.<c:clustering> <ejb-name>DDBasedClusteredSFSB</ejb-name> <c:clustered>true</c:clustered> </c:clustering>
<c:clustering> <ejb-name>DDBasedClusteredSFSB</ejb-name> <c:clustered>true</c:clustered> </c:clustering>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
O JBoss EAP 7 não exige mais que você habilite o comportamento do clustering. Por padrão, se o servidor for iniciado utilizando um perfil HA, o estado de SFSBs será replicado automaticamente.
Você pode desabilitar este comportamento padrão com uma das seguintes maneiras.
-
Você pode desabilitar o comportamento padrão de um único bean de sessão com
@Stateful(passivationCapable=false), que é novo na especificação EJB 3.2. -
Você pode desabilitar esse comportamento globalmente na configuração do
ejb3subsistema na configuração do servidor.
Se o @Clustered anotação não é removida do aplicativo, ela é simplesmente ignorada e não afeta a implementação do aplicativo.
5.19.4. Alterações nos serviços de clustering [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
No JBoss EAP 6, as APIs para serviços de clustering estavam em módulos privados e não eram suportadas.
O JBoss EAP 7 introduz uma API de serviço de clustering público para ser utilizada pelos aplicativos. Os novos serviços são projetados para serem leves, facilmente injetáveis e não necessitar de dependências externas.
-
O novo
org.wildfly.clustering.group.GroupA interface fornece acesso ao status atual do cluster e permite escutar alterações de associação de cluster. -
O novo
org.wildfly.clustering.dispatcher.CommandDispatcherA interface permite executar código no cluster, em todos ou em um subconjunto selecionado de nós.
Esses serviços substituem APIs similares que estavam disponíveis em releases anteriores, HAPartition do JBoss EAP 5 e GroupCommunicationService, GroupMembershipNotifier, e GroupRpcDispatcher no JBoss EAP 6.
Para mais informações, veja API pública para serviços de cluster no JBoss EAP Guia de desenvolvimento.
5.19.5. Migrar Clustering HA Singleton [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
No JBoss EAP 6, não havia nenhuma API pública disponível para o serviço de singleton de HA em todo o cluster. Se você usou o privado org.jboss.as.clustering.singleton.* classes, você deve alterar seu código para usar o novo org.wildfly.clustering.singleton.* pacotes quando você migra seu aplicativo para o JBoss EAP 7.
Para obter mais informações sobre serviços singleton de HA, consulte Serviço HA Singleton no Guia de desenvolvimento para o JBoss EAP. Para obter informações sobre implantações de singleton de alta disponibilidade, consulte Implantações de HA Singleton no Guia de desenvolvimento para o JBoss EAP.
Capítulo 6. Alterações diversas [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
6.1. Alterações no modo de entrega do JBoss EAP Natives e Servidor HTTP Apache [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
JBoss EAP 7 nativos são entregues de uma forma diferente neste lançamento. Agora alguns são enviados com o novo produto Red Hat JBoss Core Services, que é um grupo de softwares suplementares que é comum em muitos produtos middleware da Red Hat JBoss. O novo produto permite distribuição mais rápida de atualizações e uma experiência de atualização mais consistente. O produto JBoss Core Services está disponível para download em uma localidade diferente no Portal do Cliente Red Hat .
A seguinte tabela lista as diferenças nos métodos de entrega entre os lançamentos.
Expand Pacote JBoss EAP 6 JBoss EAP 7 AIO Natives para mensagens
Entregue com o produto em um download "Native Utilities" separado
Incluído na distribuição de JBoss EAP. Não é necessário nenhum download adicional.
Servidor HTTP Apache
Entregue com o produto em um download "Servidor HTTP Apache" separado.
Entregue com o novo produto JBoss Core Services
mod_cluster, mod_jk, isapi, e conectores nsapi
Entregue com o produto em um download "Webserver Connector Natives" separado
Entregue com o novo produto JBoss Core Services
JSVC
Entregue com o produto em um download "Native Utilities" separado
Entregue com o novo produto JBoss Core Services
OpenSSL
Entregue com o produto em um download "Native Utilities" separado
Entregue com o novo produto JBoss Core Services
tcnatives
Entregue com o produto em um download "Native Components" separado
Revise O Que Há de Novo no JBoss EAP 7 [Esta é uma tradução automática]
Você também deve estar ciente das seguintes alterações:
O suporte foi removido para os conectores mod_cluster e mod_jk usados com o Apache HTTP Server dos canais RPM do Red Hat Enterprise Linux. Se você executar o Apache HTTP Server a partir dos canais RPM do Red Hat Enterprise Linux e precisar configurar o balanceamento de carga para os servidores do JBoss EAP 7, você pode fazer o seguinte:
- Use o servidor HTTP Apache fornecido pelo JBoss Core Services.
- Você pode configurar o JBoss EAP 7 para atuar como um balanceador de carga front-end. Para mais informações, veja Configurando o JBoss EAP como um balanceador de carga front-end no JBoss EAP Guia de configuração.
- Você pode implantar o Apache HTTP Server em uma máquina que é suportada e certificada e, em seguida, executar o balanceador de carga nessa máquina. Para a lista de configurações suportadas, consulte Visão Geral dos Conectores HTTP no JBoss EAP 7 Guia de configuração.
Foi eliminado suporte para conectores mod_cluster e mod_jk utilizados com o servidor HTTP Apache a partir do HP-UX Web Server Suites. Se você executar o servidor HTTP Apache a partir do HP-UX Web Server Suites e precisar configurar balanceamento de carga para servidores JBoss EAP 7, você pode fazer uma das seguintes opções:
- Você pode configurar o JBoss EAP 7 para atuar como um balanceador de carga front-end. Para mais informações, veja Configurando o JBoss EAP como um balanceador de carga front-end no JBoss EAP Guia de configuração.
- Você pode implantar o Apache HTTP Server em uma máquina que é suportada e certificada e, em seguida, executar o balanceador de carga nessa máquina. Para a lista de configurações suportadas, consulte Visão Geral dos Conectores HTTP no JBoss EAP Guia de configuração.
- Você pode encontrar mais informações sobre JBoss Core Services no Guia de Instalação do Servidor HTTP Apache.
6.2. Alterações às implementações no Amazon EC2 [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Várias mudanças foram feitas na Amazon Machine Images (AMI) no JBoss EAP 7. Esta seção resume brevemente algumas dessas mudanças.
- O modo como você inicia instâncias JBoss EAP clusterizadas e não clusterizadas e domínios no Amazon EC2 foram alterados significativamente.
-
O JBoss EAP 6 usou o
User Data:campo para a configuração do JBoss EAP. Os scripts da AMI que analisaram a configuração noUser Data:campo e iniciou os servidores automaticamente na inicialização da instância foram removidos do JBoss EAP 7. - O agente Red Hat JBoss Operations Network era instalado em lançamentos prévios do JBoss EAP. No JBoss EAP 7, você deve instalá-lo separadamente.
Para detalhes sobre a implantação do JBoss EAP 7 no Amazon EC2, veja Implantando Red Hat JBoss Enterprise Application Platform na Amazon EC2.
6.4. Alterações nos scripts do JBoss EAP [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
o add-user O comportamento do script mudou no JBoss EAP 7 devido a uma mudança na política de senha. O JBoss EAP 6 tinha uma política de senha estrita. Como resultado, add-user O script rejeitou senhas fracas que não satisfaziam os requisitos mínimos. No JBoss EAP 7, senhas fracas são aceitas e um aviso é emitido. Para mais informações, veja Configurando Restrições de Senha do Utilitário Add-User no JBoss EAP Guia de configuração.
6.5. Remoção de suporte OSGi [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Quando o JBoss EAP 6.0 GA foi lançado pela primeira vez, o JBoss OSGi, uma implementação da especificação OSGi, foi incluído como um recurso de apresentação prévia de tecnologia. Com o lançamento do JBoss EAP 6.1.0, o JBoss OSGi foi rebaixado de apresentação técnica para não suportado.
No JBoss EAP 6.1.0, o configadmin e osgi módulos de extensão e configuração do subsistema para um servidor independente foram movidos para um EAP_HOME/standalone/configuration/standalone-osgi.xml arquivo de configuração. Como você não deve migrar esse arquivo de configuração não suportado, a remoção do suporte do JBoss OSGi não deve afetar a migração de uma configuração de servidor independente. Se você modificou qualquer um dos outros arquivos de configuração independentes para configurar osgi ou configadmin, essas configurações devem ser removidas.
Para um domínio gerenciado, o osgi extensão e configuração do subsistema foram removidos do EAP_HOME/domain/configuration/domain.xml arquivo na versão do JBoss EAP 6.1.0. No entanto, o configadmin a extensão do módulo e a configuração do subsistema permanecem no EAP_HOME/domain/configuration/domain.xml Arquivo. Esta configuração não é mais suportada no JBoss EAP 7 e deve ser removida.
Capítulo 7. Migrando para o Elytron no JBoss EAP 7.1 [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
7.1. Visão geral de Elytron [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
O JBoss EAP 7.1 apresenta o Elytron, que fornece uma única estrutura unificada que pode gerenciar e configurar o acesso para servidores independentes e domínios gerenciados. Também pode ser usado para configurar o acesso de segurança para aplicativos implantados nos servidores do JBoss EAP.
As arquiteturas do Elytron e do subsistema de segurança legado que é baseado no PicketBox são muito diferentes. Com o Elytron, foi feita uma tentativa de criar uma solução que permite operar nos mesmos ambientes de segurança em que você opera atualmente; no entanto, isso faz não significa que cada opção de configuração do PicketBox tem uma opção de configuração equivalente no Elytron.
Se você não conseguir encontrar informações na documentação para ajudá-lo a obter uma funcionalidade semelhante usando o Elytron ao usar a implementação de segurança herdada, poderá encontrar ajuda de uma das maneiras a seguir.
- Se você tem um Subscrição do Red Hat Development, você tem acesso a Casos de suporte, Soluções, e Artigos de conhecimento no Portal do Cliente Red Hat. Você também pode abrir um caso com Suporte técnico e obter ajuda da comunidade WildFly, conforme descrito abaixo.
- Se você não tem uma assinatura do Red Hat Development, você ainda pode acessar Artigos de conhecimento no Portal do Cliente Red Hat. Você também pode participar do fóruns de usuários e chat ao vivo para fazer perguntas da comunidade WildFly. As ofertas da comunidade WildFly são ativamente monitoradas pela equipe de engenharia da Elytron.
A configuração do seu servidor JBoss EAP 7.0 e as implementações que usam o legado security O subsistema, que é baseado no PicketBox, deve rodar sem alterações no JBoss EAP 7.1. O PicketBox continua a oferecer suporte a domínios de segurança, o que permite que os aplicativos continuem usando os módulos de login existentes. Os realms de segurança, que são usados pela camada de gerenciamento para segurança, também são transportados e emulados pelo Elytron. Isso permite que você defina a autenticação tanto no elytron e legado security subsistemas e usá-los em paralelo. Para obter mais informações sobre como configurar seu aplicativo para usar o Elytron e a segurança legada, consulte Configurar aplicativos da Web para usar o Elytron ou a segurança legada para autenticação dentro Como configurar o gerenciamento de identidades para o JBoss EAP.
Embora a autenticação do PicketBox continue sendo suportada, recomendamos que você alterne para o Elytron quando estiver pronto para migrar seus aplicativos. Uma das vantagens de usar a segurança Elytron é que ela fornece uma solução de segurança consistente em todo o servidor e seus aplicativos. Para obter informações sobre como migrar a autenticação e autorização do PicketBox para usar o Elytron, consulte Migrar Configuração de Autenticação neste guia.
Para obter uma visão geral dos novos recursos disponíveis no elytron subsistema, consulte Recursos no subsistema Elytron no JBoss EAP Arquitetura de Segurança guia.
Esteja ciente de que, se você optar por usar tanto o legado security subsistema e Elytron em suas implementações, invocações entre implementações usando diferentes arquiteturas de segurança não são suportadas.
Para obter mais informações sobre o uso desses subsistemas em paralelo, consulte Usando os subsistemas Elytron e Legacy Security em paralelo dentro Como configurar o gerenciamento de identidades para o JBoss EAP.
7.2. Migração de cofres e propriedades seguras [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
7.2.1. Migrar Vaults para Proteger o Armazenamento de Credenciais [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
O cofre que foi usado para armazenar criptografia de cadeia de texto simples no legado security O subsistema no JBoss EAP 7.0 não é compatível com o Elytron no JBoss EAP 7.1, que usa um novo armazenamento de credenciais para armazenar cadeias de caracteres. As lojas de credenciais criptografam com segurança credenciais em um arquivo de armazenamento fora dos arquivos de configuração do JBoss EAP. Você pode usar a implementação fornecida pelo Elytron ou pode personalizar a configuração usando as APIs e SPIs do repositório de credenciais. Cada servidor do JBoss EAP pode conter vários armazenamentos de credenciais.
Se você usou anteriormente expressões de cofre para parametrizar dados não sensíveis, é recomendável substituir os dados por Propriedades de segurança Elytron.
Se você continuar a usar o legado security subsistema, você não precisa modificar ou atualizar os dados do seu cofre. No entanto, se você planeja migrar seu aplicativo para usar o Elytron, é necessário converter seus cofres existentes em armazenamentos de credenciais para que possam ser processados pelo elytron subsistema. Para obter mais informações sobre armazenamentos de credenciais, consulte Lojas de credenciais dentro Como configurar a segurança do servidor para o JBoss EAP.
Migrar clientes para usar o arquivo de configuração do WildFly [Esta é uma tradução automática]
A ferramenta WildFly Elytron Tool, fornecida com o JBoss EAP, fornece vault comando para ajudá-lo a migrar o conteúdo do vault para armazenamentos de credenciais. Você executa a ferramenta executando o elytron-tool script, que está localizado no EAP_HOME/bin diretório.
EAP_HOME/bin/elytron-tool.sh vault VAULT_ARGUMENTS
$ EAP_HOME/bin/elytron-tool.sh vault VAULT_ARGUMENTS
Se preferir, você pode executar a ferramenta executando o java -jar comando.
java -jar EAP_HOME/bin/wildfly-elytron-tool.jar vault VAULT_ARGUMENTS
$ java -jar EAP_HOME/bin/wildfly-elytron-tool.jar vault VAULT_ARGUMENTS
Você pode usar o seguinte comando para obter uma descrição de todos os argumentos disponíveis.
EAP_HOME/bin/elytron-tool.sh vault --help
$ EAP_HOME/bin/elytron-tool.sh vault --help
- A ferramenta WildFly Elytron não pode lidar com a primeira versão dos arquivos de dados do cofre de segurança.
-
Você pode digitar o
--keystore-passwordargumento em formato mascarado, como mostrado no exemplo abaixo para migrar um cofre único ou em texto não criptografado. -
o
--salte--iterationargumentos são fornecidos para fornecer informações para decriptografar a senha mascarada ou para gerar uma senha mascarada na saída. Se o--salte--iterationargumentos são omitidos, valores padrão são usados. -
o
--summaryO argumento produz comandos CLI de gerenciamento formatados que podem ser usados para adicionar os armazenamentos de credenciais convertidos à configuração do JBoss EAP. Senhas de texto simples são mascaradas na saída de resumo.
Esteja ciente de que os armazenamentos de credenciais só podem ser usados para proteger senhas. Eles não suportam o recurso de expressão do vault que pode ser usado em qualquer parte do modelo de gerenciamento.
Escolha uma das seguintes opções de migração:
Migrar Vaults para Proteger o Armazenamento de Credenciais [Esta é uma tradução automática]
A seguir, um exemplo do comando usado para converter um único cofre de segurança em um armazenamento de credenciais.
EAP_HOME/bin/elytron-tool.sh vault --enc-dir vault_data/ --keystore vault-jceks.keystore --keystore-password MASK-2hKo56F1a3jYGnJwhPmiF5 --iteration 34 --salt 12345678 --alias test --location cs-v1.store --summary
$ EAP_HOME/bin/elytron-tool.sh vault --enc-dir vault_data/ --keystore vault-jceks.keystore --keystore-password MASK-2hKo56F1a3jYGnJwhPmiF5 --iteration 34 --salt 12345678 --alias test --location cs-v1.store --summary
Esse comando converte o cofre de segurança em um armazenamento de credenciais e imprime o resumo dos comandos da CLI de gerenciamento que foram usados para convertê-lo na saída.
Migrar Vaults para Proteger o Armazenamento de Credenciais [Esta é uma tradução automática]
Você pode converter vários cofres em um armazenamento de credenciais usando o --bulk-convert argumento e apontando para um arquivo descritor de conversão em massa.
Os exemplos nesta seção usam o seguinte arquivo descritor de conversão em massa.
Exemplo: bulk-vault-conversion-descriptor.txt Arquivo [Esta é uma tradução automática]
Uma nova conversão começa quando cada novo keystore: linha é encontrada. Todas as opções são obrigatórias, exceto para salt, iteration, e properties.
Para executar a conversão em massa e gerar saída que formata os comandos da CLI de gerenciamento, execute o seguinte comando.
EAP_HOME/bin/elytron-tool.sh vault --bulk-convert path/to/bulk-vault-conversion-descriptor.txt --summary
$ EAP_HOME/bin/elytron-tool.sh vault --bulk-convert path/to/bulk-vault-conversion-descriptor.txt --summary
Esse comando converte todas as áreas seguras especificadas no arquivo em um armazenamento de credenciais e imprime o resumo dos comandos da CLI de gerenciamento que foram usados para convertê-los na saída.
7.2.2. Migrar propriedades de segurança para o Elytron [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Os exemplos nesta seção assumem que o group.name e encoding.algorithm propriedades de segurança são definidas como security-properties no legado security subsistema da seguinte forma.
Exemplo: propriedades de segurança definidas no security Subsistema [Esta é uma tradução automática]
Para definir as mesmas propriedades de segurança no elytron subsistema, defina o security-properties atributo do elytron subsistema usando o seguinte comando CLI de gerenciamento.
/subsystem=elytron:write-attribute(name=security-properties, value={ group.name = "engineering-group", encoding.algorithm = "BASE64" })
/subsystem=elytron:write-attribute(name=security-properties, value={ group.name = "engineering-group", encoding.algorithm = "BASE64" })
Isso configura o seguinte security-properties no elytron subsistema no arquivo de configuração do servidor.
o write-attribute operação usada no comando anterior sobrescreve as propriedades existentes. Para adicionar ou alterar uma propriedade de segurança sem afetar outras propriedades de segurança, use o map operação no comando CLI de gerenciamento.
/subsystem=elytron:map-put(name=security-properties, key=group.name, value=technical-support)
/subsystem=elytron:map-put(name=security-properties, key=group.name, value=technical-support)
De maneira semelhante, você pode remover uma propriedade de segurança específica usando o map-remove Operação.
/subsystem=elytron:map-remove(name=security-properties, key=group.name)
/subsystem=elytron:map-remove(name=security-properties, key=group.name)
7.3. Migrar Configuração de Autenticação [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
7.3.1. Migrar Autenticação e Autorização Baseadas em Propriedades para o Elytron [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
7.3.1.1. Migrar a configuração baseada em propriedades do PicketBox para Elytron [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Esta seção descreve como migrar a autenticação baseada em propriedades do PicketBox para o Elytron. Você pode escolher migrar parcialmente autenticação baseada em propriedades expondo apenas o domínio de segurança PicketBox ao Elytron ou você pode migrar totalmente as configurações de autenticação baseadas em propriedades para usar o Elytron.
Os procedimentos a seguir presumem que o aplicativo da Web implementado que você planeja migrar está configurado para exigir autenticação baseada em formulário. O aplicativo está fazendo referência a um domínio de segurança PicketBox e está usando UsersRolesLoginModule para carregar informações do usuário do example-users.properties e example-roles.properties arquivos. Esses exemplos também assumem que o domínio de segurança é definido no legado security subsistema usando os seguintes comandos CLI de gerenciamento.
Exemplo: Comandos de Configuração Baseados em Propriedades do PicketBox [Esta é uma tradução automática]
/subsystem=security/security-domain=application-security:add
/subsystem=security/security-domain=application-security/authentication=classic:add(login-modules=[{code=UsersRoles, flag=Required, module-options={usersProperties=file://${jboss.server.config.dir}/example-users.properties, rolesProperties=file://${jboss.server.config.dir}/example-roles.properties}}])
/subsystem=security/security-domain=application-security:add
/subsystem=security/security-domain=application-security/authentication=classic:add(login-modules=[{code=UsersRoles, flag=Required, module-options={usersProperties=file://${jboss.server.config.dir}/example-users.properties, rolesProperties=file://${jboss.server.config.dir}/example-roles.properties}}])
Isso resulta na seguinte configuração do servidor.
Exemplo: Configuração de Domínio de Segurança Baseada em Propriedades do PicketBox [Esta é uma tradução automática]
Escolha uma das seguintes opções de migração:
Migrar parcialmente expondo o domínio de segurança do PicketBox para Elytron
Você pode expor um domínio de segurança do PicketBox como um domínio de segurança Elytron para que ele possa ser conectado a uma configuração do Elytron; no entanto, isso cria uma dependência do legado security subsistema. Se você estiver migrando apenas a autenticação baseada em propriedades, é recomendável migrar totalmente o aplicativo para Elytron para evitar a dependência desnecessária do legado security subsistema. No entanto, uma migração parcial pode ser uma solução intermediária quando não for possível migrar completamente o aplicativo para usar o Elytron.
Siga este procedimento para adicionar uma configuração de região de segurança PicketBox existente como uma região de segurança Elytron.
Exemplo: propriedades de segurança definidas no
securitySubsistema [Esta é uma tradução automática]/subsystem=security/elytron-realm=application-security:add(legacy-jaas-config=application-security)
/subsystem=security/elytron-realm=application-security:add(legacy-jaas-config=application-security)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Isso configura o seguinte domínio de segurança Elytron no
securitysubsistema do arquivo de configuração do servidor.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Definir um domínio de segurança no
elytronsubsistema que referencia a região de segurança exportada e uma fábrica de autenticação HTTP que suporta autenticação baseada em formulário./subsystem=elytron/security-domain=application-security:add(realms=[{realm=application-security}], default-realm=application-security, permission-mapper=default-permission-mapper) /subsystem=elytron/http-authentication-factory=application-security-http:add(http-server-mechanism-factory=global, security-domain=application-security, mechanism-configurations=[{mechanism-name=DIGEST,mechanism-realm-configurations=[{realm-name=RealmName}]}]/subsystem=elytron/security-domain=application-security:add(realms=[{realm=application-security}], default-realm=application-security, permission-mapper=default-permission-mapper) /subsystem=elytron/http-authentication-factory=application-security-http:add(http-server-mechanism-factory=global, security-domain=application-security, mechanism-configurations=[{mechanism-name=DIGEST,mechanism-realm-configurations=[{realm-name=RealmName}]}]Copy to Clipboard Copied! Toggle word wrap Toggle overflow Isso resulta nas seguintes
elytronconfiguração do subsistema no arquivo de configuração do servidor.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Mapeie o domínio de segurança referenciado pela implementação para o factory de autenticação HTTP recém-definido no
undertowsubsistema./subsystem=undertow/application-security-domain=application-security:add(http-authentication-factory=application-security-http)
/subsystem=undertow/application-security-domain=application-security:add(http-authentication-factory=application-security-http)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Isso resulta na seguinte configuração no
undertowsubsistema do arquivo de configuração do servidor.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Se o aplicativo já tiver sido implementado antes dessa configuração, você deverá recarregar o servidor ou reimplementar o aplicativo para que o mapeamento do novo domínio de segurança do aplicativo tenha efeito.
Verifique se o mapeamento foi aplicado à implantação usando o seguinte comando da CLI de gerenciamento. A implantação usada neste exemplo é
HelloWorld.war. A saída do comando this mostra essa implementação referenciando o mapeamento Elytron.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Nesta fase, o domínio de segurança previamente definido é usado para LoginModule configuração, mas é envolvido pelos componentes Elytron, que assumem a autenticação.
Migrar Autenticação e Autorização Baseadas em Propriedades para o Elytron [Esta é uma tradução automática]
Siga estas etapas para migrar completamente a autenticação baseada em propriedades do PicketBox para o Elytron. Este procedimento assume que você está começando com a configuração legada descrita na introdução desta seção e não migrou para o parcialmente migrado solução. Quando você concluir este processo, qualquer definição de domínio de segurança que exista no legado security subsistema permanece completamente independente da configuração do Elytron.
Defina um novo domínio de segurança no
elytronsubsistema que referencia os arquivos de propriedades do PicketBox./subsystem=elytron/properties-realm=application-properties:add(users-properties={path=example-users.properties, relative-to=jboss.server.config.dir, plain-text=true, digest-realm-name="Application Security"}, groups-properties={path=example-roles.properties, relative-to=jboss.server.config.dir}, groups-attribute=Roles)/subsystem=elytron/properties-realm=application-properties:add(users-properties={path=example-users.properties, relative-to=jboss.server.config.dir, plain-text=true, digest-realm-name="Application Security"}, groups-properties={path=example-roles.properties, relative-to=jboss.server.config.dir}, groups-attribute=Roles)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Definir um subsistema de domínio de segurança e um factory de autenticação HTTP no
elytronsubsistema./subsystem=elytron/security-domain=application-security:add(realms=[{realm=application-properties}], default-realm=application-properties, permission-mapper=default-permission-mapper) /subsystem=elytron/http-authentication-factory=application-security-http:add(http-server-mechanism-factory=global, security-domain=application-security, mechanism-configurations=[{mechanism-name=FORM}])/subsystem=elytron/security-domain=application-security:add(realms=[{realm=application-properties}], default-realm=application-properties, permission-mapper=default-permission-mapper) /subsystem=elytron/http-authentication-factory=application-security-http:add(http-server-mechanism-factory=global, security-domain=application-security, mechanism-configurations=[{mechanism-name=FORM}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow Isso resulta nas seguintes
elytronconfiguração do subsistema no arquivo de configuração do servidor.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Mapeie o domínio de segurança do aplicativo mencionado pela implementação para o factory de autenticação HTTP recém-definido no
undertowsubsistema./subsystem=undertow/application-security-domain=application-security:add(http-authentication-factory=application-security-http)
/subsystem=undertow/application-security-domain=application-security:add(http-authentication-factory=application-security-http)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Isso resulta nas seguintes
undertowconfiguração do subsistema no arquivo de configuração do servidor.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Você deve recarregar o servidor ou reimplementar o aplicativo para que o mapeamento do novo domínio de segurança do aplicativo tenha efeito.
A autenticação está agora configurada para ser equivalente à configuração do PicketBox; no entanto, os componentes Elytron são agora usados exclusivamente para autenticação.
7.3.1.2. Migrar a configuração baseada em propriedades herdadas para o Elytron [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Esta seção descreve como migrar uma região de segurança legada que carrega informações de usuário, senha e grupo dos arquivos de propriedades para o Elytron. Esse tipo de domínio de segurança herdado é normalmente usado para proteger as interfaces de gerenciamento ou os conectores remotos.
Estes exemplos assumem que o domínio de segurança legado é definido usando os seguintes comandos da CLI de gerenciamento.
Exemplo: Comandos do Reino de Segurança Legado [Esta é uma tradução automática]
/core-service=management/security-realm=ApplicationSecurity:add /core-service=management/security-realm=ApplicationSecurity/authentication=properties:add(relative-to=jboss.server.config.dir, path=example-users.properties, plain-text=true) /core-service=management/security-realm=ApplicationSecurity/authorization=properties:add(relative-to=jboss.server.config.dir, path=example-roles.properties)
/core-service=management/security-realm=ApplicationSecurity:add
/core-service=management/security-realm=ApplicationSecurity/authentication=properties:add(relative-to=jboss.server.config.dir, path=example-users.properties, plain-text=true)
/core-service=management/security-realm=ApplicationSecurity/authorization=properties:add(relative-to=jboss.server.config.dir, path=example-roles.properties)
Isso resulta na seguinte configuração do servidor.
Exemplo: Comandos de Configuração do Reino de Segurança Legado [Esta é uma tradução automática]
Uma das motivações para adicionar a segurança Elytron ao servidor de aplicativos é permitir que uma solução de segurança consistente seja usada em todo o servidor. As etapas iniciais para migrar um domínio de segurança legado baseado em propriedades para o Elytron são semelhantes àquelas usadas para migrar uma autenticação baseada em propriedades do PicketBox para o Elytron. Siga estas etapas para migrar um domínio de segurança legado baseado em propriedades para o Elytron.
Defina um novo domínio de segurança no
elytronsubsistema que referencia os arquivos de propriedades./subsystem=elytron/properties-realm=application-properties:add(users-properties={path=example-users.properties, relative-to=jboss.server.config.dir, plain-text=true, digest-realm-name="Application Security"}, groups-properties={path=example-roles.properties, relative-to=jboss.server.config.dir}, groups-attribute=Roles)/subsystem=elytron/properties-realm=application-properties:add(users-properties={path=example-users.properties, relative-to=jboss.server.config.dir, plain-text=true, digest-realm-name="Application Security"}, groups-properties={path=example-roles.properties, relative-to=jboss.server.config.dir}, groups-attribute=Roles)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Definir um subsistema de domínio de segurança e um factory de autenticação HTTP no
elytronsubsistema./subsystem=elytron/security-domain=application-security:add(realms=[{realm=application-properties}], default-realm=application-properties, permission-mapper=default-permission-mapper) /subsystem=elytron/http-authentication-factory=application-security-http:add(http-server-mechanism-factory=global, security-domain=application-security, mechanism-configurations=[{mechanism-name=FORM}])/subsystem=elytron/security-domain=application-security:add(realms=[{realm=application-properties}], default-realm=application-properties, permission-mapper=default-permission-mapper) /subsystem=elytron/http-authentication-factory=application-security-http:add(http-server-mechanism-factory=global, security-domain=application-security, mechanism-configurations=[{mechanism-name=FORM}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow Isso resulta na seguinte configuração Elytron.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Definir um
sasl-authentication-factorypara que o domínio de segurança legado também possa ser usado para autenticação SASL (Simple Authentication Security Layer)./subsystem=elytron/sasl-authentication-factory=application-security-sasl:add(sasl-server-factory=elytron, security-domain=application-security, mechanism-configurations=[{mechanism-name=PLAIN}])/subsystem=elytron/sasl-authentication-factory=application-security-sasl:add(sasl-server-factory=elytron, security-domain=application-security, mechanism-configurations=[{mechanism-name=PLAIN}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow Isso resulta na seguinte configuração Elytron.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configure um conector remoto para a autenticação SASL e remova a associação com a região de segurança legada.
/subsystem=remoting/http-connector=http-remoting-connector:write-attribute(name=sasl-authentication-factory, value=application-security-sasl) /subsystem=remoting/http-connector=http-remoting-connector:undefine-attribute(name=security-realm)
/subsystem=remoting/http-connector=http-remoting-connector:write-attribute(name=sasl-authentication-factory, value=application-security-sasl) /subsystem=remoting/http-connector=http-remoting-connector:undefine-attribute(name=security-realm)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Isso resulta na seguinte configuração no
remotingsubsistema do arquivo de configuração do servidor.<subsystem xmlns="urn:jboss:domain:remoting:4.0"> ... <http-connector name="http-remoting-connector" connector-ref="default" sasl-authentication-factory="application-security-sasl"/> </subsystem>
<subsystem xmlns="urn:jboss:domain:remoting:4.0"> ... <http-connector name="http-remoting-connector" connector-ref="default" sasl-authentication-factory="application-security-sasl"/> </subsystem>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Adicione as duas fábricas de autenticação e remova as referências de domínio de segurança legadas para proteger
http-interfacecom Elytron./core-service=management/management-interface=http-interface:write-attribute(name=http-authentication-factory, value=application-security-http) /core-service=management/management-interface=http-interface:write-attribute(name=http-upgrade.sasl-authentication-factory, value=application-security-sasl) /core-service=management/management-interface=http-interface:undefine-attribute(name=security-realm)
/core-service=management/management-interface=http-interface:write-attribute(name=http-authentication-factory, value=application-security-http) /core-service=management/management-interface=http-interface:write-attribute(name=http-upgrade.sasl-authentication-factory, value=application-security-sasl) /core-service=management/management-interface=http-interface:undefine-attribute(name=security-realm)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Isso resulta na seguinte configuração.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NotaVocê deve escolher nomes mais adequados do que aqueles usados nesses exemplos ao proteger as interfaces de gerenciamento.
Migrar a configuração baseada em propriedades herdadas para o Elytron [Esta é uma tradução automática]
7.3.2. Migrar a configuração de autenticação LDAP para o Elytron [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Esta seção descreve como migrar a autenticação LDAP herdada para o Elytron para que ela possa gerenciar as informações como atributos de identidade. Muitas das informações fornecidas na seção intitulada Migrar Autenticação e Autorização Baseadas em Propriedades para o Elytron aplica-se aqui, particularmente sobre como definir domínios de segurança e fábricas de autenticação, e como mapeá-los para serem usados para autenticação. Esta seção não repete essas instruções, portanto, leia essa seção antes de continuar.
Os exemplos a seguir supõem que as informações de grupo ou função são carregadas diretamente do LDAP e que a autenticação LDAP herdada é configurada da seguinte maneira.
O servidor LDAP contém as seguintes entradas de usuário e grupo.
Exemplo: Entradas do Usuário do Servidor LDAP [Esta é uma tradução automática]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemplo: Entradas do Grupo de Servidores LDAP [Esta é uma tradução automática]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Para fins de autenticação, o nome do usuário é comparado com o
uidatributo e o nome do grupo resultante é retirado douidatributo da entrada do grupo.A conexão com o servidor LDAP e a região de segurança relacionada é definida usando os seguintes comandos da CLI de gerenciamento.
Exemplo: Comandos de configuração do domínio de segurança do LDAP [Esta é uma tradução automática]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Isso resulta na seguinte configuração do servidor.
Exemplo: Configuração do Realm de Segurança LDAP [Esta é uma tradução automática]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Os seguintes comandos CLI de gerenciamento são usados para configurar um domínio de segurança PicketBox, que usa o
LdapExtLoginModulepara verificar um nome de usuário e senha.Exemplo: Comandos de Configuração do Domínio de Segurança [Esta é uma tradução automática]
/subsystem=security/security-domain=application-security:add /subsystem=security/security-domain=application-security/authentication=classic:add(login-modules=[{code=LdapExtended, flag=Required, module-options={ java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory, java.naming.provider.url=ldap://localhost:10389, java.naming.security.authentication=simple, bindDN="uid=admin,ou=system", bindCredential=secret, baseCtxDN="ou=users,dc=group-to-principal,dc=wildfly,dc=org", baseFilter="(uid={0})", rolesCtxDN="ou=groups,dc=group-to-principal,dc=wildfly,dc=org", roleFilter="(uniqueMember={1})", roleAttributeID="uid" }}])/subsystem=security/security-domain=application-security:add /subsystem=security/security-domain=application-security/authentication=classic:add(login-modules=[{code=LdapExtended, flag=Required, module-options={ java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory, java.naming.provider.url=ldap://localhost:10389, java.naming.security.authentication=simple, bindDN="uid=admin,ou=system", bindCredential=secret, baseCtxDN="ou=users,dc=group-to-principal,dc=wildfly,dc=org", baseFilter="(uid={0})", rolesCtxDN="ou=groups,dc=group-to-principal,dc=wildfly,dc=org", roleFilter="(uniqueMember={1})", roleAttributeID="uid" }}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow Isso resulta na seguinte configuração do servidor.
Exemplo: Configuração do Domínio de Segurança [Esta é uma tradução automática]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.2.1. Migre a Autenticação LDAP Legada para Elytron [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Siga estas etapas para migrar a configuração anterior do exemplo de autenticação LDAP para o Elytron. Esta seção aplica-se à migração de um domínio LDAP de segurança legada bem como um Domínio de segurança do PicketBox LDAP.
Exemplo: propriedades de segurança definidas no
securitySubsistema [Esta é uma tradução automática]/subsystem=elytron/dir-context=ldap-connection:add(url=ldap://localhost:10389, principal="uid=admin, ou=system", credential-reference={clear-text=secret})/subsystem=elytron/dir-context=ldap-connection:add(url=ldap://localhost:10389, principal="uid=admin, ou=system", credential-reference={clear-text=secret})Copy to Clipboard Copied! Toggle word wrap Toggle overflow Crie um domínio de segurança para pesquisar o LDAP e verifique a senha fornecida.
/subsystem=elytron/ldap-realm=ldap-realm:add(dir-context=ldap-connection, direct-verification=true, identity-mapping={search-base-dn="ou=users, dc=group-to-principal, dc=wildfly, dc=org", rdn-identifier="uid", attribute-mapping=[{filter-base-dn="ou=groups, dc=group-to-principal, dc=wildfly, dc=org", filter="(uniqueMember={1})", from="uid", to="Roles"}]})/subsystem=elytron/ldap-realm=ldap-realm:add(dir-context=ldap-connection, direct-verification=true, identity-mapping={search-base-dn="ou=users, dc=group-to-principal, dc=wildfly, dc=org", rdn-identifier="uid", attribute-mapping=[{filter-base-dn="ou=groups, dc=group-to-principal, dc=wildfly, dc=org", filter="(uniqueMember={1})", from="uid", to="Roles"}]})Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Essas etapas resultam nas seguintes elytron configuração do subsistema no arquivo de configuração do servidor.
Por padrão, se não role-decoder é definido para um dado security-domain, o atributo de identidade "Funções" é mapeado para as funções de identidade.
Informações carregadas do LDAP agora podem ser associadas a identidades como atributos. Esses atributos podem ser mapeados para funções, mas também podem ser carregados e usados para outras finalidades. O domínio de segurança recém-criado pode ser usado em um domínio de segurança da mesma forma que é descrito no Migrar Autenticação e Autorização Baseadas em Propriedades para o Elytron seção deste guia.
7.3.3. Migrar a configuração de autenticação de banco de dados para o Elytron [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Esta seção descreve como migrar a autenticação PicketBox baseada em origem de dados JDBC para o Elytron. Muitas das informações fornecidas na seção intitulada Migrar Autenticação e Autorização Baseadas em Propriedades para o Elytron aplica-se aqui, particularmente sobre como definir domínios de segurança e fábricas de autenticação, e como mapeá-los para serem usados para autenticação. Esta seção não repete essas instruções, portanto, leia essa seção antes de continuar.
Os exemplos a seguir presumem que os dados de autenticação do usuário estão armazenados em uma tabela de banco de dados criada usando uma sintaxe semelhante ao exemplo a seguir.
Exemplo: sintaxe para criar a tabela de usuário do banco de dados [Esta é uma tradução automática]
Para fins de autenticação, o nome de usuário é comparado com os dados armazenados no username coluna, espera-se que a senha seja armazenada como um hash MD5 codificado hexadecimal no password coluna, ea função de usuário para fins de autorização é armazenada no role coluna.
O domínio de segurança PicketBox é configurado para usar uma origem de dados JBDC para recuperar dados da tabela de banco de dados e, em seguida, usá-lo para verificar o nome de usuário e a senha e para atribuir funções. Suponha que o domínio de segurança PicketBox esteja configurado usando os seguintes comandos da CLI de gerenciamento.
Exemplo: Comandos de Configuração do LoginModule do Banco de Dados do PicketBox [Esta é uma tradução automática]
/subsystem=security/security-domain=application-security:add
/subsystem=security/security-domain=application-security/authentication=classic:add( login-modules=[ { code=Database, flag=Required, module-options={ dsJndiName="java:jboss/datasources/ExampleDS", principalsQuery="SELECT password FROM User WHERE username = ?", rolesQuery="SELECT role, 'Roles' FROM User WHERE username = ?", hashAlgorithm=MD5, hashEncoding=base64 } } ] )
/subsystem=security/security-domain=application-security:add
/subsystem=security/security-domain=application-security/authentication=classic:add( login-modules=[ { code=Database, flag=Required, module-options={ dsJndiName="java:jboss/datasources/ExampleDS", principalsQuery="SELECT password FROM User WHERE username = ?", rolesQuery="SELECT role, 'Roles' FROM User WHERE username = ?", hashAlgorithm=MD5, hashEncoding=base64 } } ] )
Isso resulta nas seguintes login-module configuração no legado security subsistema.
Exemplo: Configuração do PicketBox LoginModule [Esta é uma tradução automática]
7.3.3.1. Migre a Autenticação de Banco de Dados Legada para Elytron [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Para migrar a configuração anterior do exemplo de autenticação do banco de dados para o Elytron, você deve definir uma região JDBC para ativar o acesso à origem de dados JDBC pelo Elytron.
Utilize o seguinte comando de gerenciamento para definir jdbc-realm.
/subsystem=elytron/jdbc-realm=jdbc-realm:add(principal-query=[ { data-source=ExampleDS, sql="SELECT role, password FROM User WHERE username = ?", attribute-mapping=[{index=1, to=Roles } ] simple-digest-mapper={algorithm=simple-digest-md5, password-index=2} } ] )
/subsystem=elytron/jdbc-realm=jdbc-realm:add(principal-query=[ { data-source=ExampleDS, sql="SELECT role, password FROM User WHERE username = ?", attribute-mapping=[{index=1, to=Roles } ] simple-digest-mapper={algorithm=simple-digest-md5, password-index=2} } ] )
Isso resulta nas seguintes jdbc-realm configuração no elytron subsistema do arquivo de configuração do servidor.
O Elytron agora gerencia a autenticação do banco de dados usando a configuração do território JDBC. O Elytron é mais eficiente que o PicketBox porque usa uma consulta SQL para obter todos os atributos e credenciais do usuário e, em seguida, extrai dados dos resultados do SQL e cria um mapeamento dos atributos a serem usados para autenticação.
7.3.4. Migração da autenticação Kerberos para o Elytron [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Ao trabalhar com uma configuração do Kerberos, o servidor do JBoss EAP pode confiar nas informações de configuração do ambiente, ou a configuração da chave pode ser especificada usando as propriedades do sistema. Esta seção discute como migrar HTTP Kerberos e Kerberos SASL autenticação.
Os exemplos a seguir pressupõem que o Kerberos esteja configurado usando as seguintes propriedades do sistema. Essas propriedades do sistema são aplicáveis à configuração herdada e à configuração migrada do Elytron.
Exemplo: Comandos CLI de gerenciamento de propriedades do sistema Kerberos [Esta é uma tradução automática]
Exemplo: configuração do servidor de propriedades do sistema Kerberos [Esta é uma tradução automática]
<system-properties> <property name="sun.security.krb5.debug" value="true"/> <property name="java.security.krb5.realm" value="ELYTRON.ORG"/> <property name="java.security.krb5.kdc" value="kdc.elytron.org"/> </system-properties>
<system-properties>
<property name="sun.security.krb5.debug" value="true"/>
<property name="java.security.krb5.realm" value="ELYTRON.ORG"/>
<property name="java.security.krb5.kdc" value="kdc.elytron.org"/>
</system-properties>
Escolha uma das seguintes opções de migração:
Migração da autenticação Kerberos para o Elytron [Esta é uma tradução automática]
Nas configurações de segurança herdadas, você pode definir um domínio de segurança para habilitar a autenticação SPNEGO para a interface de gerenciamento HTTP da seguinte maneira.
Exemplo: Ativar a autenticação SPNEGO para a interface de gerenciamento de HTTP [Esta é uma tradução automática]
/core-service=management/security-realm=Kerberos:add /core-service=management/security-realm=Kerberos/server-identity=kerberos:add /core-service=management/security-realm=Kerberos/server-identity=kerberos/keytab=HTTP\/test-server.elytron.org@ELYTRON.ORG:add(path=/path/to/test-server.keytab, debug=true) /core-service=management/security-realm=Kerberos/authentication=kerberos:add(remove-realm=true)
/core-service=management/security-realm=Kerberos:add
/core-service=management/security-realm=Kerberos/server-identity=kerberos:add
/core-service=management/security-realm=Kerberos/server-identity=kerberos/keytab=HTTP\/test-server.elytron.org@ELYTRON.ORG:add(path=/path/to/test-server.keytab, debug=true)
/core-service=management/security-realm=Kerberos/authentication=kerberos:add(remove-realm=true)
Exemplo: configuração do território de segurança Kerberos [Esta é uma tradução automática]
Você também pode definir um par de domínios de segurança legados para permitir que os aplicativos usem a autenticação HTTP do Kerberos.
Exemplo: definir vários domínios de segurança [Esta é uma tradução automática]
Exemplo: Configuração usando um par de domínios de segurança [Esta é uma tradução automática]
Os aplicativos legados são então implantados referenciando o domínio de segurança SPNEGO e protegidos com o mecanismo SPNEGO.
Migração da autenticação Kerberos para o Elytron [Esta é uma tradução automática]
Tanto a interface de gerenciamento quanto os aplicativos podem ser protegidos no Elytron usando uma região de segurança e uma fábrica de segurança Kerberos.
Defina uma região de segurança a ser usada para carregar informações de identidade.
/subsystem=elytron/properties-realm=spnego-properties:add(users-properties={path=path/to/spnego-users.properties, plain-text=true, digest-realm-name=ELYTRON.ORG}, groups-properties={path=path/to/spnego-roles.properties})/subsystem=elytron/properties-realm=spnego-properties:add(users-properties={path=path/to/spnego-users.properties, plain-text=true, digest-realm-name=ELYTRON.ORG}, groups-properties={path=path/to/spnego-roles.properties})Copy to Clipboard Copied! Toggle word wrap Toggle overflow Defina uma fábrica de segurança Kerberos que permita ao servidor carregar sua própria identidade Kerberos.
/subsystem=elytron/kerberos-security-factory=test-server:add(path=path/to/test-server.keytab, principal=HTTP/test-server.elytron.org@ELYTRON.ORG, debug=true)
/subsystem=elytron/kerberos-security-factory=test-server:add(path=path/to/test-server.keytab, principal=HTTP/test-server.elytron.org@ELYTRON.ORG, debug=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Defina um domínio de segurança para reunir a política, bem como uma fábrica de autenticação HTTP para a política de autenticação.
/subsystem=elytron/security-domain=SPNEGODomain:add(default-realm=spnego-properties, realms=[{realm=spnego-properties, role-decoder=groups-to-roles}], permission-mapper=default-permission-mapper) /subsystem=elytron/http-authentication-factory=spnego-http-authentication:add(security-domain=SPNEGODomain, http-server-mechanism-factory=global,mechanism-configurations=[{mechanism-name=SPNEGO, credential-security-factory=test-server}])/subsystem=elytron/security-domain=SPNEGODomain:add(default-realm=spnego-properties, realms=[{realm=spnego-properties, role-decoder=groups-to-roles}], permission-mapper=default-permission-mapper) /subsystem=elytron/http-authentication-factory=spnego-http-authentication:add(security-domain=SPNEGODomain, http-server-mechanism-factory=global,mechanism-configurations=[{mechanism-name=SPNEGO, credential-security-factory=test-server}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow Isso resulta na seguinte configuração no
elytronsubsistema do arquivo de configuração do servidor.Exemplo: Configuração do Elytron Migrado [Esta é uma tradução automática]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Para proteger o aplicativo, defina um domínio de segurança do aplicativo no
undertowsubsistema para mapear domínios de segurança para estehttp-authentication-factory. A interface de gerenciamento HTTP pode ser atualizada para referenciarhttp-authentication-factorydefinido nesta configuração. Este processo está documentado no Migrar Autenticação e Autorização Baseadas em Propriedades para o Elytron seção deste guia.
Migração da autenticação Kerberos para o Elytron [Esta é uma tradução automática]
É possível definir uma região de segurança legada para que a autenticação Kerberos / GSSAPI SASL seja usada para autenticação remota, como a interface de gerenciamento nativa.
Exemplo: Autenticação Kerberos para Comandos CLI de Gerenciamento Remoto [Esta é uma tradução automática]
/core-service=management/security-realm=Kerberos:add /core-service=management/security-realm=Kerberos/server-identity=kerberos:add /core-service=management/security-realm=Kerberos/server-identity=kerberos/keytab=remote\/test-server.elytron.org@ELYTRON.ORG:add(path=path/to/remote-test-server.keytab, debug=true) /core-service=management/security-realm=Kerberos/authentication=kerberos:add(remove-realm=true)
/core-service=management/security-realm=Kerberos:add
/core-service=management/security-realm=Kerberos/server-identity=kerberos:add
/core-service=management/security-realm=Kerberos/server-identity=kerberos/keytab=remote\/test-server.elytron.org@ELYTRON.ORG:add(path=path/to/remote-test-server.keytab, debug=true)
/core-service=management/security-realm=Kerberos/authentication=kerberos:add(remove-realm=true)
Exemplo: configuração de domínio de segurança remota do Kerberos [Esta é uma tradução automática]
Migração da autenticação Kerberos para o Elytron [Esta é uma tradução automática]
As etapas para definir a configuração equivalente do Elytron são muito semelhantes às descritas Migração da Autenticação HTTP Kerberos.
Defina uma região de segurança a ser usada para carregar informações de identidade.
/path=kerberos:add(relative-to=user.home, path=src/kerberos) /subsystem=elytron/properties-realm=kerberos-properties:add(users-properties={path=kerberos-users.properties, relative-to=kerberos, digest-realm-name=ELYTRON.ORG}, groups-properties={path=kerberos-groups.properties, relative-to=kerberos})/path=kerberos:add(relative-to=user.home, path=src/kerberos) /subsystem=elytron/properties-realm=kerberos-properties:add(users-properties={path=kerberos-users.properties, relative-to=kerberos, digest-realm-name=ELYTRON.ORG}, groups-properties={path=kerberos-groups.properties, relative-to=kerberos})Copy to Clipboard Copied! Toggle word wrap Toggle overflow Defina a fábrica de segurança Kerberos para a identidade do servidor.
/subsystem=elytron/kerberos-security-factory=test-server:add(relative-to=kerberos, path=remote-test-server.keytab, principal=remote/test-server.elytron.org@ELYTRON.ORG)
/subsystem=elytron/kerberos-security-factory=test-server:add(relative-to=kerberos, path=remote-test-server.keytab, principal=remote/test-server.elytron.org@ELYTRON.ORG)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemplo: Domínio de Segurança Elytron e Comandos de Configuração de Fábrica de Autenticação [Esta é uma tradução automática]
/subsystem=elytron/security-domain=KerberosDomain:add(default-realm=kerberos-properties, realms=[{realm=kerberos-properties, role-decoder=groups-to-roles}], permission-mapper=default-permission-mapper) /subsystem=elytron/sasl-authentication-factory=gssapi-authentication-factory:add(security-domain=KerberosDomain, sasl-server-factory=elytron, mechanism-configurations=[{mechanism-name=GSSAPI, credential-security-factory=test-server}])/subsystem=elytron/security-domain=KerberosDomain:add(default-realm=kerberos-properties, realms=[{realm=kerberos-properties, role-decoder=groups-to-roles}], permission-mapper=default-permission-mapper) /subsystem=elytron/sasl-authentication-factory=gssapi-authentication-factory:add(security-domain=KerberosDomain, sasl-server-factory=elytron, mechanism-configurations=[{mechanism-name=GSSAPI, credential-security-factory=test-server}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Isso resulta na seguinte configuração no elytron subsistema do arquivo de configuração do servidor.
A interface de gerenciamento ou os conectores remotos podem agora ser atualizados para fazer referência ao factory de autenticação SASL.
Os dois exemplos de Elytron definidos aqui também podem ser combinados para usar um domínio de segurança e um domínio de segurança compartilhados e apenas usar fábricas de autenticação específicas de protocolo, cada uma referenciando sua própria fábrica de segurança Kerberos.
7.3.5. Migrar lojas compostas para Elytron [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Esta seção descreve como migrar uma PicketBox ou domínio de segurança legado configuração que usa vários armazenamentos de identidades para Élitro. Ao usar o PicketBox ou os domínios de segurança legados, é possível definir uma configuração em que a autenticação é executada em um armazenamento de identidades enquanto as informações usadas para autorização são carregadas de um armazenamento diferente. Ao migrar para o Elytron, isso pode ser feito usando um domínio de segurança agregado.
Os exemplos a seguir executam a autenticação do usuário usando o example-users.properties arquivo de propriedades e, em seguida, consulte o LDAP para carregar as informações de grupo e função.
As configurações mostradas são baseadas nos exemplos das seções a seguir, que fornecem informações adicionais sobre o histórico:
- Migrar Autenticação e Autorização Baseadas em Propriedades para o Elytron [Esta é uma tradução automática]
- Migrar a configuração de autenticação LDAP para o Elytron
Exemplo: Configuração do PicketBox LoginModule [Esta é uma tradução automática]
O domínio de segurança PicketBox para este cenário é configurado usando os seguintes comandos da CLI de gerenciamento.
Exemplo: comandos de configuração do PicketBox [Esta é uma tradução automática]
/subsystem=security/security-domain=application-security:add
/subsystem=security/security-domain=application-security/authentication=classic:add(login-modules=[ {code=UsersRoles, flag=Required, module-options={ password-stacking=useFirstPass, usersProperties=file://${jboss.server.config.dir}/example-users.properties}} {code=LdapExtended, flag=Required, module-options={ password-stacking=useFirstPass, java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory, java.naming.provider.url=ldap://localhost:10389, java.naming.security.authentication=simple, bindDN="uid=admin,ou=system", bindCredential=secret, baseCtxDN="ou=users,dc=group-to-principal,dc=wildfly,dc=org", baseFilter="(uid={0})", rolesCtxDN="ou=groups,dc=group-to-principal,dc=wildfly,dc=org",roleFilter="(uniqueMember={1})", roleAttributeID="uid" }}])
/subsystem=security/security-domain=application-security:add
/subsystem=security/security-domain=application-security/authentication=classic:add(login-modules=[ {code=UsersRoles, flag=Required, module-options={ password-stacking=useFirstPass, usersProperties=file://${jboss.server.config.dir}/example-users.properties}} {code=LdapExtended, flag=Required, module-options={ password-stacking=useFirstPass, java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory, java.naming.provider.url=ldap://localhost:10389, java.naming.security.authentication=simple, bindDN="uid=admin,ou=system", bindCredential=secret, baseCtxDN="ou=users,dc=group-to-principal,dc=wildfly,dc=org", baseFilter="(uid={0})", rolesCtxDN="ou=groups,dc=group-to-principal,dc=wildfly,dc=org",roleFilter="(uniqueMember={1})", roleAttributeID="uid" }}])
Isso resulta na seguinte configuração do servidor.
Exemplo: Configuração do Domínio de Segurança do PicketBox [Esta é uma tradução automática]
Vejo Configuração do domínio de segurança agregada Elytron para saber como configurar um domínio de segurança agregado no elytron subsistema para realizar isso.
Exemplo: Comandos de Configuração do Reino de Segurança Legado [Esta é uma tradução automática]
A configuração de região de segurança legada para este cenário é configurada usando os seguintes comandos da CLI de gerenciamento.
Exemplo: Comandos de Configuração do Reino de Segurança Legado [Esta é uma tradução automática]
Isso resulta na seguinte configuração do servidor.
Exemplo: Comandos de Configuração do Reino de Segurança Legado [Esta é uma tradução automática]
Vejo Configuração do domínio de segurança agregada Elytron para saber como configurar um domínio de segurança agregado no elytron subsistema para realizar isso.
Exemplo: Configuração do Realm de Segurança LDAP [Esta é uma tradução automática]
A configuração equivalente do Elytron para este cenário é configurada usando os seguintes comandos da CLI de gerenciamento.
Exemplo: Comandos de Configuração do Elytron [Esta é uma tradução automática]
Isso resulta na seguinte configuração do servidor.
Exemplo: Configuração Elytron [Esta é uma tradução automática]
No elytron subsistema, um aggregate-realm foi definido que especifica quais domínios de segurança devem ser usados para autenticação e quais usar para decisões de autorização.
7.3.6. Migrar os domínios de segurança que usam o cache para Elytron [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Ao usar o PicketBox, é possível definir um domínio de segurança e ativar o armazenamento em cache da memória para seu acesso. Isso permite que você acesse os dados de identidade na memória e evita o acesso direto adicional ao armazenamento de identidades. É possível obter uma configuração semelhante com o Elytron. Esta seção descreve como configurar o armazenamento em cache do domínio de segurança ao usar o Elytron.
Exemplo: Configuração do Domínio de Segurança em Cache do PicketBox [Esta é uma tradução automática]
Os comandos a seguir mostram como configurar um domínio de segurança PicketBox que permite o armazenamento em cache.
Exemplo: Comandos do Domínio de Segurança em Cache do PicketBox [Esta é uma tradução automática]
/subsystem=security/security-domain=application-security:add(cache-type=default)
/subsystem=security/security-domain=application-security/authentication=classic:add(login-modules=[{code=LdapExtended, flag=Required, module-options={ java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory, java.naming.provider.url=ldap://localhost:10389, java.naming.security.authentication=simple, bindDN="uid=admin,ou=system", bindCredential=secret, baseCtxDN="ou=users,dc=group-to-principal,dc=wildfly,dc=org", baseFilter="(uid={0})", rolesCtxDN="ou=groups,dc=group-to-principal,dc=wildfly,dc=org", roleFilter="(uniqueMember={1})", roleAttributeID="uid" }}])
/subsystem=security/security-domain=application-security:add(cache-type=default)
/subsystem=security/security-domain=application-security/authentication=classic:add(login-modules=[{code=LdapExtended, flag=Required, module-options={ java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory, java.naming.provider.url=ldap://localhost:10389, java.naming.security.authentication=simple, bindDN="uid=admin,ou=system", bindCredential=secret, baseCtxDN="ou=users,dc=group-to-principal,dc=wildfly,dc=org", baseFilter="(uid={0})", rolesCtxDN="ou=groups,dc=group-to-principal,dc=wildfly,dc=org", roleFilter="(uniqueMember={1})", roleAttributeID="uid" }}])
Isso resulta na seguinte configuração do servidor.
Exemplo: Configuração do Domínio de Segurança em Cache do PicketBox [Esta é uma tradução automática]
Este comando e configuração resultante é semelhante ao exemplo mostrado em Migrar a configuração de autenticação LDAP para o Elytron; no entanto, aqui o atributo cache-type é definido com um valor de default. o default O tipo de cache é um cache na memória. Ao usar o PicketBox, você também pode especificar um cache-type do infinispan, no entanto, este tipo não é suportado pelo Elytron.
Exemplo: Configuração do Domínio de Segurança em Cache do Elytron [Esta é uma tradução automática]
Siga as etapas abaixo para criar uma configuração semelhante que armazena em cache um domínio de segurança ao usar o Elytron.
Defina um domínio de segurança e envolva o domínio de segurança em um domínio de armazenamento em cache. O domínio de armazenamento em cache pode ser usado em um domínio de segurança e, posteriormente, em uma fábrica de autenticação.
Exemplo: Comandos de Configuração do Elytron Security Realm [Esta é uma tradução automática]
/subsystem=elytron/dir-context=ldap-connection:add(url=ldap://localhost:10389, principal="uid=admin,ou=system", credential-reference={clear-text=secret}) /subsystem=elytron/ldap-realm=ldap-realm:add(dir-context=ldap-connection, direct-verification=true, identity-mapping={search-base-dn="ou=users,dc=group-to-principal,dc=wildfly,dc=org", rdn-identifier="uid", attribute-mapping=[{filter-base-dn="ou=groups,dc=group-to-principal,dc=wildfly,dc=org",filter="(uniqueMember={1})",from="uid",to="Roles"}]}) /subsystem=elytron/caching-realm=cached-ldap:add(realm=ldap-realm)/subsystem=elytron/dir-context=ldap-connection:add(url=ldap://localhost:10389, principal="uid=admin,ou=system", credential-reference={clear-text=secret}) /subsystem=elytron/ldap-realm=ldap-realm:add(dir-context=ldap-connection, direct-verification=true, identity-mapping={search-base-dn="ou=users,dc=group-to-principal,dc=wildfly,dc=org", rdn-identifier="uid", attribute-mapping=[{filter-base-dn="ou=groups,dc=group-to-principal,dc=wildfly,dc=org",filter="(uniqueMember={1})",from="uid",to="Roles"}]}) /subsystem=elytron/caching-realm=cached-ldap:add(realm=ldap-realm)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Defina um domínio de segurança e uma fábrica de autenticação HTTP que use o
cached-ldapreino definido na etapa anterior.Exemplo: Domínio de Segurança Elytron e Comandos de Configuração de Fábrica de Autenticação [Esta é uma tradução automática]
/subsystem=elytron/security-domain=application-security:add(realms=[{realm=cached-ldap}], default-realm=cached-ldap, permission-mapper=default-permission-mapper) /subsystem=elytron/http-authentication-factory=application-security-http:add(http-server-mechanism-factory=global, security-domain=application-security, mechanism-configurations=[{mechanism-name=BASIC}])/subsystem=elytron/security-domain=application-security:add(realms=[{realm=cached-ldap}], default-realm=cached-ldap, permission-mapper=default-permission-mapper) /subsystem=elytron/http-authentication-factory=application-security-http:add(http-server-mechanism-factory=global, security-domain=application-security, mechanism-configurations=[{mechanism-name=BASIC}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow NotaNesta etapa, é importante referenciar o
caching-realmem vez do reino original. Caso contrário, o cache será ignorado.
Esses comandos resultam nas seguintes adições à configuração do servidor.
Exemplo: Configuração do Domínio de Segurança em Cache do Elytron [Esta é uma tradução automática]
7.3.7. Migre a Segurança do JACC para o Elytron [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Por padrão, o JBoss EAP usa o legado security subsistema para configurar o fornecedor e a fábrica de políticas do Java Authorization Contract for Containers (JACC). A configuração padrão é mapeada para implementações da PicketBox.
o elytron O subsistema fornece um provedor de políticas integrado com base na especificação JACC. Antes de configurar seu servidor para permitir que o Elytron gerencie configurações do JACC e outras políticas, você deve primeiro desabilitar o JACC no security subsistema usando o seguinte comando CLI de gerenciamento.
/subsystem=security:write-attribute(name=initialize-jacc, value=false)
/subsystem=security:write-attribute(name=initialize-jacc, value=false)
Não fazer isso pode resultar no seguinte erro no log do servidor: MSC000004: Failure during stop of service org.wildfly.security.policy: java.lang.StackOverflowError.
Para obter informações sobre como ativar o JACC e definir um provedor de política JACC no elytron subsistema, consulte Ativando o JACC usando o elytron Subsistema no Guia de desenvolvimento para o JBoss EAP.
7.4. Migrar clientes de aplicativos [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
7.4.1. Migrar uma configuração de cliente de nomeação para Elytron [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Esta seção descreve como migrar um aplicativo cliente que executa uma consulta JNDI remota usando um org.jboss.naming.remote.client.InitialContext classe, que é apoiado por um org.jboss.naming.remote.client.InitialContextFactory classe, para Elytron.
Os exemplos a seguir assumem que o InitialContextFactory classe é criada especificando propriedades para as credenciais do usuário e para o URL do provedor de nomeação ao qual ele se conecta.
Exemplo: InitialContext Código usado na liberação anterior [Esta é uma tradução automática]
Você pode escolher uma das seguintes abordagens de migração:
- Migrar o cliente de nomeação usando a abordagem do arquivo de configuração [Esta é uma tradução automática]
- Migrar o cliente de nomeação usando a abordagem programática [Esta é uma tradução automática]
7.4.1.1. Migrar o cliente de nomeação usando a abordagem do arquivo de configuração [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Migrar o cliente de nomeação usando a abordagem do arquivo de configuração [Esta é uma tradução automática]
Crie um
wildfly-config.xmlarquivo no aplicativo clienteMETA-INF/diretório. O arquivo deve conter as credenciais do usuário a serem usadas ao estabelecer uma conexão com o provedor de nomenclatura.Exemplo: Configuração Equivalente Usando o
wildfly-config.xmlArquivo [Esta é uma tradução automática]Copy to Clipboard Copied! Toggle word wrap Toggle overflow Criar um
InitialContextcomo no exemplo a seguir. Note que oInitialContexté apoiado peloorg.wildfly.naming.client.WildFlyInitialContextFactoryclasse.Exemplo:
InitialContextCódigo usado na liberação anterior [Esta é uma tradução automática]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.4.1.2. Migrar o cliente de nomeação usando a abordagem programática [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Usando essa abordagem, você fornece as credenciais do usuário que são usadas para estabelecer uma conexão com o provedor de nomenclatura diretamente no código do aplicativo.
Migrar o cliente EJB usando a abordagem programática [Esta é uma tradução automática]
7.4.2. Migrar um cliente EJB para Elytron [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Este exemplo de migração assume que o aplicativo cliente está configurado para chamar um EJB implementado em um servidor remoto usando um jboss-ejb-client.properties Arquivo. Este arquivo, localizado no aplicativo cliente META-INF/ diretório, contém as seguintes informações necessárias para conectar-se ao servidor remoto.
Exemplo: jboss-ejb-client.properties Arquivo [Esta é uma tradução automática]
O cliente consulta o EJB e chama um de seus métodos usando código semelhante ao exemplo a seguir.
Exemplo: código do cliente que chama um EJB remoto [Esta é uma tradução automática]
Você pode escolher uma das seguintes abordagens de migração:
- Migrar o cliente EJB usando a abordagem do arquivo de configuração [Esta é uma tradução automática]
- Migrar o cliente EJB usando a abordagem programática [Esta é uma tradução automática]
7.4.2.1. Migrar o cliente EJB usando a abordagem do arquivo de configuração [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Migrar o cliente de nomeação usando a abordagem do arquivo de configuração [Esta é uma tradução automática]
Configurar um
wildfly-config.xmlarquivo no aplicativo clienteMETA-INF/diretório. O arquivo deve conter as credenciais do usuário a serem usadas ao estabelecer uma conexão com o provedor de nomenclatura.Exemplo: Configuração Equivalente Usando o
wildfly-config.xmlArquivo [Esta é uma tradução automática]Copy to Clipboard Copied! Toggle word wrap Toggle overflow Criar um
InitialContextcomo no exemplo a seguir. Note que oInitialContexté apoiado peloorg.wildfly.naming.client.WildFlyInitialContextFactoryclasse.Exemplo:
InitialContextCódigo usado na liberação anterior [Esta é uma tradução automática]Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Exemplo:
jboss-ejb-client.propertiesArquivo de propriedades [Esta é uma tradução automática]
7.4.2.2. Migrar o cliente EJB usando a abordagem programática [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Usando essa abordagem, você fornece as informações necessárias para se conectar ao servidor remoto diretamente no código do aplicativo.
Migrar o cliente EJB usando a abordagem programática [Esta é uma tradução automática]
Exemplo: jboss-ejb-client.properties Arquivo de propriedades [Esta é uma tradução automática]
7.5. Migrar configurações SSL [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
7.5.1. Migrar uma configuração SSL simples para o Elytron [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Se você protegeu conexões HTTP com o servidor do JBoss EAP usando uma região de segurança, pode migrar essa configuração para o Elytron usando as informações fornecidas nesta seção.
Os exemplos a seguir presumem que você tenha os seguintes keystore configurado no security-realm.
Exemplo: Configuração SSL Usando um Keystore de Realm de Segurança [Esta é uma tradução automática]
Siga os passos abaixo para obter a mesma configuração usando o Elytron.
Crie um
key-storenoelytronsubsistema que especifica o local do keystore e a senha pela qual ele é criptografado. Este comando assume que o keystore foi gerado usando o comando keytool e seu tipo éJKS./subsystem=elytron/key-store=LocalhostKeyStore:add(path=server.keystore,relative-to=jboss.server.config.dir,credential-reference={clear-text="keystore_password"},type=JKS)/subsystem=elytron/key-store=LocalhostKeyStore:add(path=server.keystore,relative-to=jboss.server.config.dir,credential-reference={clear-text="keystore_password"},type=JKS)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Crie um
key-managernoelytronsubsistema que especifica okey-storedefinido na etapa anterior, o alias e a senha da chave./subsystem=elytron/key-manager=LocalhostKeyManager:add(key-store=LocalhostKeyStore,alias-filter=server,credential-reference={clear-text="key_password"})/subsystem=elytron/key-manager=LocalhostKeyManager:add(key-store=LocalhostKeyStore,alias-filter=server,credential-reference={clear-text="key_password"})Copy to Clipboard Copied! Toggle word wrap Toggle overflow Crie um
server-ssl-contextnoelytronsubsistema que referencia okey-managerque foi definido na etapa anterior./subsystem=elytron/server-ssl-context=LocalhostSslContext:add(key-manager=LocalhostKeyManager)
/subsystem=elytron/server-ssl-context=LocalhostSslContext:add(key-manager=LocalhostKeyManager)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Mude o
https-listenerdo legadosecurity-realmpara o recém-criado Elytronssl-context.batch /subsystem=undertow/server=default-server/https-listener=https:undefine-attribute(name=security-realm) /subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=ssl-context,value=LocalhostSslContext) run-batch
batch /subsystem=undertow/server=default-server/https-listener=https:undefine-attribute(name=security-realm) /subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=ssl-context,value=LocalhostSslContext) run-batchCopy to Clipboard Copied! Toggle word wrap Toggle overflow Recarregue o servidor.
recarregar
recarregarCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Isso resulta nas seguintes elytron configuração do subsistema no arquivo de configuração do servidor.
Isso resulta nas seguintes undertow configuração do subsistema no arquivo de configuração do servidor.
<https-listener name="https" socket-binding="https" ssl-context="LocalhostSslContext" enable-http2="true"/>
<https-listener name="https" socket-binding="https" ssl-context="LocalhostSslContext" enable-http2="true"/>
Para mais informações, veja Subsistema Elytron e Como proteger as interfaces de gerenciamento dentro Como configurar a segurança do servidor para o JBoss EAP.
7.5.2. Migrar Autenticação SSL de Cliente-Certificado para Elytron [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Se você configurou a autenticação SSL do Client-Cert usando um truststore de security realm, poderá migrar essa configuração para o Elytron usando as informações fornecidas nesta seção.
Os passos abaixo assumem que você tem o seguinte truststore configurado no security-realm.
Exemplo: Configuração SSL Usando o Truststore de Realm de Segurança [Esta é uma tradução automática]
As etapas abaixo apenas fornecem configuração para impedir que usuários sem um certificado válido e uma chave privada acessem o servidor. Eles não configuram a identidade do usuário para autenticação no servidor. Supõe-se que você já tenha configurado a autenticação HTTP CLIENT-CERT e a autenticação SASL externa para autenticação de identidade do usuário.
Siga estas etapas para configurar o servidor para impedir que usuários sem um certificado válido e uma chave privada acessem o servidor usando o Elytron.
Crie um
key-storenoelytronsubsistema que especifica o local do keystore e a senha pela qual ele é criptografado. Este comando assume que o keystore foi gerado usando o comando keytool e seu tipo éJKS./subsystem=elytron/key-store=LocalhostKeyStore:add(path=server.keystore,relative-to=jboss.server.config.dir,credential-reference={clear-text="keystore_password"},type=JKS)/subsystem=elytron/key-store=LocalhostKeyStore:add(path=server.keystore,relative-to=jboss.server.config.dir,credential-reference={clear-text="keystore_password"},type=JKS)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Crie um
key-storenoelytronsubsistema que especifica o local do armazenamento confiável e a senha pela qual ele é criptografado. Este comando assume que o keystore foi gerado usando o comando keytool e seu tipo éJKS./subsystem=elytron/key-store=TrustStore:add(path=server.truststore,relative-to=jboss.server.config.dir,credential-reference={clear-text="truststore_password"},type=JKS)/subsystem=elytron/key-store=TrustStore:add(path=server.truststore,relative-to=jboss.server.config.dir,credential-reference={clear-text="truststore_password"},type=JKS)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Crie um
key-managernoelytronsubsistema que especifica o definido anteriormenteLocalhostKeyStorekeystore, o alias e a senha da chave./subsystem=elytron/key-manager=LocalhostKeyManager:add(key-store=LocalhostKeyStore,alias-filter=server,credential-reference={clear-text="key_password"})/subsystem=elytron/key-manager=LocalhostKeyManager:add(key-store=LocalhostKeyStore,alias-filter=server,credential-reference={clear-text="key_password"})Copy to Clipboard Copied! Toggle word wrap Toggle overflow Crie um
trust-managernoelytronsubsistema que especifica okey-storedo armazenamento confiável criado anteriormente./subsystem=elytron/trust-manager=TrustManager:add(key-store=TrustStore)
/subsystem=elytron/trust-manager=TrustManager:add(key-store=TrustStore)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Crie um
server-ssl-contextnoelytronsubsistema que faz referência ao anteriormente definidokey-manager, define otrust-manageratributo e permite a autenticação do cliente./subsystem=elytron/server-ssl-context=LocalhostSslContext:add(key-manager=LocalhostKeyManager,trust-manager=TrustManager,need-client-auth=true)
/subsystem=elytron/server-ssl-context=LocalhostSslContext:add(key-manager=LocalhostKeyManager,trust-manager=TrustManager,need-client-auth=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Mude o
https-listenerdo legadosecurity-realmpara o recém-criado Elytronssl-context.batch /subsystem=undertow/server=default-server/https-listener=https:undefine-attribute(name=security-realm) /subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=ssl-context,value=LocalhostSslContext) run-batch
batch /subsystem=undertow/server=default-server/https-listener=https:undefine-attribute(name=security-realm) /subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=ssl-context,value=LocalhostSslContext) run-batchCopy to Clipboard Copied! Toggle word wrap Toggle overflow Recarregue o servidor.
recarregar
recarregarCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Isso resulta nas seguintes elytron configuração do subsistema no arquivo de configuração do servidor.
Isso resulta nas seguintes undertow configuração do subsistema no arquivo de configuração do servidor.
<https-listener name="https" socket-binding="https" ssl-context="LocalhostSslContext" enable-http2="true"/>
<https-listener name="https" socket-binding="https" ssl-context="LocalhostSslContext" enable-http2="true"/>
Para mais informações, veja Subsistema Elytron e Usando um contexto SSL-cliente dentro Como configurar a segurança do servidor para o JBoss EAP.
Capítulo 8. Migrando a partir de versões mais antigas do JBoss EAP [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
8.1. Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Este guia concentra-se nas alterações necessárias para executar e implementar com êxito os aplicativos JBoss EAP 6 no JBoss EAP 7. Se você planeja migrar seus aplicativos diretamente do JBoss EAP 5 para o JBoss EAP 7, há uma série de recursos disponíveis para ajudá-lo planejar e executar sua migração. Sugerimos que você adote a seguinte abordagem.
- Vejo Resumo das alterações feitas em cada release neste guia para uma visão geral rápida e de alto nível das mudanças feitas em cada versão do JBoss EAP.
- Leia o JBoss EAP 6 Guia de Migração e este guia para se familiarizar com o conteúdo de cada um.
- Use o Referência de atualização de componentes do JBoss EAP 5 como uma referência rápida para informações de migração sobre componentes e recursos específicos.
- O Red Hat Application Migration Toolkit baseado em regras continua a adicionar regras para ajudá-lo a migrar diretamente do JBoss EAP 5 para o JBoss EAP 7. Você pode usar essas ferramentas para analisar seu aplicativo e gerar relatórios detalhados sobre as mudanças necessárias para migrar para o JBoss EAP. 7. Para mais informações, consulte Use o Red Hat Application Migration Toolkit para analisar aplicativos para migração.
- o Base de Conhecimento do Portal do Cliente atualmente contém artigos e soluções para ajudar com a migração do JBoss EAP 5 para o JBoss EAP 6. Existem planos em vigor para adicionar conteúdo adicional para migração do JBoss EAP 5 para o JBoss EAP 7 ao longo do tempo.
8.2. Resumo das alterações feitas em cada lançamento [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Antes de planejar a sua migração, você deve estar ciente das alterações feitas no JBoss EAP 6 e no JBoss EAP 7.
o Guia de migração do JBoss EAP 6 cobre as mudanças que foram feitas entre o JBoss EAP 5 e o JBoss EAP 6. O seguinte é uma lista condensada das mudanças mais significativas feitas no JBoss EAP 6.
- Implementado uma nova arquitetura construída no contêiner de serviço modular
- Uma implementação certificada da especificação Java Enterprise Edition 6
- Introduziu gerenciamento de domínio, nova configuração de implantação e nova estrutura de diretórios de arquivo e scripts
- Padronizado em novos namespaces JNDI portáteis
Vejo Rever o que há de novo e diferente no JBoss EAP 6 no JBoss EAP 6 Guia de Migração para uma lista detalhada das alterações feitas nesse lançamento.
O JBoss EAP 7 é construído na mesma estrutura modular como o JBoss EAP 6 e inclui o mesmo gerenciamento de domínio, configuração de implantação, estrutura de diretório de arquivos e scripts. Ele também usa os mesmos espaço de nomes JNDI padronizados. Porém, o JBoss EAP 7 introduz as seguintes alterações.
- Adiciona suporte para a especificação Java Enterprise Edition 7
- Substituição do subsistema web com Undertow [Esta é uma tradução automática]
- Substitui a implementação JacORB IIOP por um ramificação downstream do OpenJDK ORB
- Inclui o Apache ActiveMQ Artemis como o novo provedor de mensagens
-
Remove o
cmp,jaxr, ethreadssubsistemas - Remove o suporte para beans de entidade EJB
Para obter uma lista mais completa de alterações, consulte Rever o que há de novo no JBoss EAP 7
8.3. Revise o conteúdo nos Guias de Migração [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Revise todo o conteúdo do Guia de Migração para cada lançamento conhecer os recursos que foram adicionados ou preteridos e para entender a configuração do servidor e as alterações de aplicativo necessárias para executar os aplicativos existentes para a versão.
Como a arquitetura subjacente não foi alterada entre o JBoss EAP 6 e o JBoss EAP 7, muitas das alterações documentadas no JBoss EAP 6 Guia de Migração ainda se aplicam. Por exemplo, mudanças documentadas em Alterações exigidas pela maioria das aplicações estão relacionados às mudanças arquitetônicas subjacentes feitas no JBoss EAP 6, que ainda se aplicam a este lançamento. A mudança para o novo sistema de carregamento de classe modular é significativa e afeta o empacotamento e as dependências de quase todos os aplicativos do JBoss EAP 5. Muitas das alterações listadas Alterações dependentes de sua arquitetura de aplicativos e componentes também ainda são válidos. No entanto, como o JBoss EAP 7 substituiu o servidor da Web, o ORB e o provedor de mensagens, cmp, threads, e jaxr subsistemas e suporte removido para beans de entidade EJB, você deve consultar este guia para quaisquer alterações relacionadas a essas áreas de componentes. Preste especial atenção ao Alterações na configuração do servidor e Alterações na migração de aplicativos detalhado neste guia antes de começar.
8.4. Referência de atualização do componente JBoss EAP 5 [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Use a tabela a seguir para encontrar informações sobre como migrar um recurso ou componente específico do JBoss EAP 5 para o JBoss EAP 7.1.
| JBoss EAP 5 Recurso ou componente | Resumo de alterações e Onde encontrar informações de migração |
|---|---|
|
Alterações na migração dos aplicativos [Esta é uma tradução automática] |
No JBoss EAP 6, a estrutura de carregamento de classes hierárquica anterior foi substituída por uma arquitetura modular baseada nos JBoss Modules. A embalagem do aplicativo também mudou devido à nova estrutura de carregamento de classe modular. Esta arquitetura ainda é usada no JBoss EAP 7. Para informações sobre a nova arquitetura modular, veja o seguinte capítulo no JBoss EAP 7.1 Guia de desenvolvimento. Para obter informações sobre como atualizar e reempacotar aplicativos para a nova arquitetura modular, consulte a seção a seguir no JBoss EAP 6 Guia de Migração. |
|
Alterações na migração dos aplicativos [Esta é uma tradução automática] |
Devido às mudanças no JBoss EAP 6 para usar o carregamento de classe modular, você pode precisar criar ou modificar um ou mais arquivos de configuração do aplicativo para adicionar dependências ou impedir o carregamento de dependências automáticas. Isso não mudou no JBoss EAP 7. Para detalhes, veja a seção a seguir no JBoss EAP 6 Guia de Migração. |
|
Cache e Infinispan |
O JBoss Cache foi substituído pelo Infinispan para uso interno pelo servidor apenas no JBoss EAP 6. Veja as seções a seguir no JBoss EAP 6 Guia de Migração para obter informações sobre como substituir o JBoss Cache no código do aplicativo. A estratégia de cache Infinispan e as alterações de configuração do JBoss EAP 7 estão documentadas na seção seguinte deste guia. |
|
Configurando um Adaptador de Recursos JMS Genérico [Esta é uma tradução automática] |
O JBoss EAP 6 consolidou a configuração de fontes de dados e adaptadores de recursos em um único arquivo, e isso ainda é verdade no JBoss EAP 7. Veja a seção a seguir no JBoss EAP 6 Guia de Migração Para maiores informações. |
|
Migrar configurações de planos de implementação [Esta é uma tradução automática] |
No JBoss EAP 6, a estrutura de diretórios, scripts e configuração de implantação foram alterados. Essas mudanças ainda são válidas no JBoss EAP 7. Veja a seção a seguir do JBoss EAP 6 Guia de Migração Para maiores informações. |
|
EJB |
A especificação do Java EE 7 tornou os recursos do EJB 2.xe anteriores opcionais, portanto, é altamente recomendado que você reescreva o código do aplicativo para usar a especificação EJB 3.xe o JPA. Para obter informações sobre recursos e mudanças reprovados necessários para executar o EJB 2.x, consulte a seção a seguir no JBoss EAP 6 Guia de Migração.
No JBoss EAP 6, o cache EJB com monitoração de estado e o tamanho do conjunto de beans de sessão stateless são configurados no O conector ea porta remotos padrão foram alterados no JBoss EAP 7. Para obter mais informações sobre isso e as alterações na configuração do servidor, consulte as seções a seguir deste guia. Beans de entidade EJB não são suportados no JBoss EAP 7. Para obter informações sobre como migrar beans de entidade para o JPA, consulte a seção a seguir deste guia. |
|
Alterações de migração JPA e Hibernate [Esta é uma tradução automática] |
No JBoss EAP 6, o Hibernate foi atualizado da versão 3 para a versão 4. Esta versão do JBoss EAP também implementou a especificação JPA 2.0 e as alterações foram feitas nas propriedades de persistência JPA. Para obter informações sobre como modificar seu aplicativo para essas mudanças, consulte a seção a seguir no JBoss EAP 6 Guia de Migração. O JBoss EAP 7 implementa o JPA 2.1 e inclui o Hibernate 5. Ele também atualiza o Hibernate Search da versão 4.6.x para a versão 5.5.x. Outras alterações incluem remoção de suporte para beans de entidade EJB e atualizações adicionais para propriedades de persistência JPA. Para obter informações sobre como essas alterações afetam seus aplicativos, consulte as seções a seguir neste guia. |
|
Alterações de aplicativos JAX-RS e RESTEasy [Esta é uma tradução automática] |
O JBoss EAP 6 empacotou o RESTEasy 2, que configurou automaticamente o RESTEasy e exigiu mudanças na configuração do aplicativo. Veja a seção a seguir no JBoss EAP 6 Guia de Migração para informação. O JBoss EAP 7 inclui o RESTEasy 3 e muitas classes foram descontinuadas. A versão do Jackson mudou da versão 1.9.9 para a versão 2.6.3 ou superior. Para obter detalhes sobre essas alterações, consulte a seção a seguir deste guia. |
|
JBoss AOP |
O JBoss AOP (Aspect Oriented Programming) foi removido no JBoss EAP 6. Para obter informações sobre como refatorar aplicativos que usam o JBoss AOP, veja a seção a seguir no JBoss EAP 6 Guia de Migração. |
|
Alterações de Canais JGroups [Esta é uma tradução automática] |
A maneira como você habilita o clustering e especifica os endereços de bind alterados no JBoss EAP 6. Veja a seção a seguir no JBoss EAP 6 Guia de Migração Para maiores informações.
No JBoss EAP 7, o JGroups agora usa como padrão uma interface de rede privada em vez de uma interface de rede pública e também introduz |
|
JNDI |
O JBoss EAP 6 implementou um novo namespace JNDI global padronizado e uma série de namespaces relacionados que mapeiam para os vários escopos de um aplicativo Java EE. Veja a seção seguinte do JBoss EAP 6 Guia de Migração para obter informações sobre alterações de aplicativo necessárias para usar as novas regras de espaço de nomes JNDI. |
|
JSF |
O JBoss EAP 6 incluiu o JSF 2.0 e permitiu que você configurasse seu aplicativo para usar uma versão mais antiga. Isso não é mais possível no JBoss EAP 7, que agora inclui o JSF 2.2. Veja a seção a seguir neste guia para mais informações. |
|
Alterações de registro [Esta é uma tradução automática] |
O JBoss EAP 6 introduziu uma nova estrutura do JBoss Logging que ainda é usada no JBoss EAP 7. Os aplicativos que usam estruturas de criação de log de terceiros podem ser impactados pelas alterações de carregamento de classe modular. Revise a seção a seguir no JBoss EAP 6 Guia de Migração para obter informações sobre essas alterações.
No JBoss EAP 7, anotações no |
|
Mensagens e JMS |
No JBoss EAP 6, o HornetQ substituiu o JBoss Messaging como a implementação padrão do JMS. Então, no JBoss EAP 7, o ActiveMQ Artemis substituiu o HornetQ como o provedor de mensagens embutido. A melhor abordagem para migrar sua configuração de mensagens é começar com a configuração do servidor padrão do JBoss EAP 7 e usar o seguinte guia para aplicar suas alterações de configuração de mensagens atuais.
Se você quiser entender as mudanças necessárias para passar do JBoss Messaging para o HornetQ, revise a seção seguinte do JBoss EAP 6 Guia de Migração. Em seguida, analise as seguintes informações sobre como migrar a configuração do HornetQ e os dados de mensagens relacionadas neste guia. |
|
ORB |
No JBoss EAP 6, a configuração do JacORB foi movida do A melhor abordagem para migrar sua configuração do ORB é começar com a configuração do servidor padrão do JBoss EAP 7 e usar a seguinte seção no JBoss EAP 7.1 Guia de configuração para aplicar as alterações da sua configuração atual do ORB. |
|
Invocação Remota |
Uma nova API de cliente EJB foi introduzida no JBoss EAP 6 para invocações remotas; no entanto, se você preferir não reescrever o código do aplicativo para usar a nova API, poderá modificar o código existente para usar o No JBoss EAP 7, o conector padrão e a porta de conexão remota padrão foram alterados. Para mais informações, consulte as seguintes seções deste guia. |
|
Seam 2.x |
Embora o suporte oficial aos aplicativos Seam 2.2 tenha sido descartado no JBoss EAP 6, ainda era possível configurar as dependências do JSF 1.2 e do Hibernate 3 para permitir que os aplicativos do Seam 2.2 fossem executados naquela versão. O JBoss EAP 7, que agora inclui o JSF 2.2 e o Hibernate 5, não suporta o Seam 2.2 ou o Seam 2.3 devido ao fim da vida útil do Red Hat JBoss Web Framework Kit. É recomendável que você reescreva seus componentes do Seam usando os beans Weld CDI. |
|
Segurança |
As atualizações de segurança no JBoss EAP 6 incluíram mudanças nos nomes de domínio de segurança e mudanças em como configurar segurança para autenticação básica. A configuração da região de segurança do LDAP foi movida para o arquivo de configuração do servidor. Veja as seções a seguir no JBoss EAP 6 Guia de Migração Para maiores informações. As atualizações que impactam a segurança no JBoss EAP 7 incluem alterações na configuração do servidor e alterações no aplicativo. Informações podem ser encontradas nas seguintes seções deste guia. |
|
Alterações de aplicativos de segurança [Esta é uma tradução automática] |
O Spring 4.2.x é a primeira versão estável do Spring suportada pelo JBoss EAP 7. Para obter informações sobre os serviços da Web do Apache CXF Spring e as alterações de integração do Spring RESTEasy, consulte as seções a seguir neste guia. |
|
Transações |
A configuração de transação consolidada do JBoss EAP 6 foi movida para o arquivo de configuração do servidor. Outras atualizações incluíram alterações nas configurações do identificador de nó JTA e como habilitar o JTS. Para detalhes, veja a seção seguinte no JBoss EAP 6 Guia de Migração.
Alguns atributos de configuração do Gerenciador de Transações que estavam disponíveis no |
|
Válvulas |
O Undertow substituiu o JBoss Web no JBoss EAP 7 e as válvulas não são mais suportadas. Veja as seções a seguir neste guia. |
|
Serviços da Web |
O JBoss EAP 6 incluiu o JBossWS 4. Para obter informações sobre as mudanças requeridas por essa atualização de versão, veja a seção a seguir no JBoss EAP 6 Guia de Migração. O JBoss EAP 7 introduziu o JBossWS 5. Veja a seção a seguir neste guia para atualizações necessárias. |
Apêndice A. Material de Referência [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
A.1. Avisos de operação de migração de subsistema JacORB [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
o migrate operação não é capaz de processar todos os recursos e atributos. A tabela a seguir lista alguns dos avisos que você pode ver ao executar o migrate ou describe-migration operação para o jacorb subsistema.
Se você vir as entradas "Não foi possível migrar" ou "Não pode migrar" na saída do migrate operação, isso indica que a migração da configuração do servidor foi concluída com êxito, mas não conseguiu migrar automaticamente todos os elementos e atributos. Você deve seguir as sugestões fornecidas pelos "avisos de migração" para modificar essas configurações.
| Mensagens de aviso | O que significa / Como resolver |
|---|---|
|
o |
o EAP_HOME/bin/standalone.sh --start-mode=admin-only
|
|
Propriedades X não pode ser emulado usando OpenJDK ORB e não são suportados |
A configuração da propriedade especificada não é suportada e não está incluída no novo
Propriedades não suportadas incluem: |
|
As propriedades X use expressões. As propriedades de configuração usadas para resolver essas expressões devem ser transformadas manualmente para o novo |
Propriedades que usam expressões devem ser configuradas manualmente pelo administrador.
Por exemplo, o |
|
Não é possível migrar: o novo |
A mensagem contém a explicação. |
A.2. Avisos para a operação de migração de subsistema de mensagem [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
o migrate operação não é capaz de processar todos os recursos e atributos. A tabela a seguir lista alguns dos avisos que você pode ver ao executar o migrate ou describe-migration operação para o messaging subsistema.
Se você vir as entradas "Não foi possível migrar" ou "Não pode migrar" na saída do migrate operação, isso indica que a migração da configuração do servidor foi concluída com êxito, mas não conseguiu migrar automaticamente todos os elementos e atributos. Você deve seguir as sugestões fornecidas pelos "avisos de migração" para modificar essas configurações.
| Mensagens de aviso | O que significa / Como resolver |
|---|---|
|
o |
o EAP_HOME/bin/standalone.sh --start-mode=admin-only
|
|
Não é possível migrar o atributo |
A mensagem contém explicação e indica como fazer para corrigir o problema. |
|
Não é possível migrar o atributo |
A mensagem contém explicação e indica como fazer para corrigir o problema. |
|
Não é possível migrar o atributo |
A mensagem contém explicação e indica como fazer para corrigir o problema. |
|
Não é possível migrar o atributo |
o |
|
Classes que fornecem o X são descartados durante a migração. Para usá-los no novo |
O suporte a interceptores de mensagens é significativamente diferente no JBoss EAP 7. Quaisquer interceptores configurados na versão anterior do subsistema são descartados durante a migração. Vejo Migrar Interceptores de Mensagens Para maiores informações. |
|
Não é possível migrar a configuração HA de X. Está |
Isso significa que o |
|
Não é possível migrar o atributo |
A mensagem contém explicação e indica como fazer para corrigir o problema. |
|
Não é possível migrar o atributo |
A mensagem contém explicação e indica como fazer para corrigir o problema. |
|
Não é possível migrar o atributo |
A mensagem contém explicação e indica como fazer para corrigir o problema. |
|
Não é possível migrar o atributo |
o |
|
Não é possível criar um |
O remoto legado do HornetQ |
|
Não é possível migrar o atributo X do recurso Y. O atributo usa uma expressão que pode ser resolvida de forma diferente, dependendo das propriedades do sistema. Após a migração, esse atributo deve ser adicionado novamente com um valor real em vez da expressão. |
Este aviso aparece quando a migração não pode resolver o atributo X a um valor concreto durante o processo de migração. O valor é descartado e o atributo deve ser migrado manualmente. Isso acontece nos seguintes casos:
|
|
Não é possível migrar o atributo X do recurso Y. Este atributo não é suportado pelo novo |
Alguns atributos não são mais suportados no novo
|
|
Não é possível migrar o atributo |
A mensagem contém a explicação. |
Substituir os atributos preteridos broadcast-group ou discovery-group
Se você é aconselhado a substituir o obsoleto broadcast-group ou discovery-group atributos com o socket-binding atributo, você pode adicionar o novo atributo usando a CLI de gerenciamento.
Este exemplo assume que você está migrando um servidor independente que contém o seguinte discovery-group configuração no messaging subsistema.
Quando você executa o migrate operação para o messaging subsistema, você vê a seguinte saída e avisos:
o migrate operação cria um discovery-group chamado "my-discovery-group" no novo messaging-activemq subsistema que agora está configurado como o seguinte.
<discovery-group name="my-discovery-group"/>
<discovery-group name="my-discovery-group"/>
Agora você deve usar o seguinte comando CLI de gerenciamento para criar um socket-binding elemento no arquivo de configuração do servidor chamado "my-discovery-group-socket-binding".
/socket-binding-group=standard-sockets/socket-binding=my-discovery-group-socket-binding:add(multicast-address=224.0.1.105, multicast-port=56789)
/socket-binding-group=standard-sockets/socket-binding=my-discovery-group-socket-binding:add(multicast-address=224.0.1.105, multicast-port=56789)
Em seguida, adicione o recém-criado socket-binding ao discovery-group chamado "my-discovery-group" no messaging-activemq subsistema no arquivo de configuração do servidor usando o seguinte comando da CLI de gerenciamento.
/subsystem=messaging-activemq/server=default/discovery-group=my-discovery-group:write-attribute(name=socket-binding,value=my-discovery-group-socket-binding)
/subsystem=messaging-activemq/server=default/discovery-group=my-discovery-group:write-attribute(name=socket-binding,value=my-discovery-group-socket-binding)
Estes comandos criam o seguinte XML no arquivo de configuração do servidor.
A.3. Avisos para operação de migração de subsistema web [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
o migrate operação não é capaz de processar todos os recursos e atributos. A tabela a seguir lista alguns dos avisos que você pode ver ao executar o migrate ou describe-migration operação para o web subsistema.
Se você vir as entradas "Não foi possível migrar" ou "Não pode migrar" na saída do migrate operação, isso indica que a migração da configuração do servidor foi concluída com êxito, mas não conseguiu migrar automaticamente todos os elementos e atributos. Você deve seguir as sugestões fornecidas pelos "avisos de migração" para modificar essas configurações.
| Mensagens de aviso | O que significa / Como resolver |
|---|---|
|
Operação de migração permitida somente em modo admin |
o EAP_HOME/bin/standalone.sh --admin-only
|
|
Não foi possível migrar recurso X |
O comportamento exibido por este recurso na versão anterior do JBoss EAP não foi migrado. O administrador deve verificar se o novo |
|
Não foi possível migrar o atributo X do recurso Y. |
O comportamento exibido por este atributo de recurso na versão anterior do JBoss EAP não foi migrado. O administrador deve verificar se o novo Vejo Avisos de Atributos da Operação de Migração do Subsistema da Web para a lista de atributos que não são migrados. |
|
Não foi possível migrar conector SSL pois nenhuma configuração SSL está definida. |
A mensagem contém a explicação. |
|
Não foi possível migrar |
A mensagem contém a explicação. |
|
Não foi possível migrar |
A mensagem contém a explicação. |
|
Não foi possível migrar a válvula X |
O comportamento exibido por esta válvula na versão anterior do JBoss EAP não foi migrado. O administrador deve verificar se o novo Este aviso pode ocorrer para as seguintes válvulas:
|
|
Não foi possível migrar o atributo X da válvula Y |
O comportamento exibido por este atributo de válvula na versão anterior do JBoss EAP não foi migrado. O administrador deve verificar se o novo
|
Avisos para operação de migração de subsistema web [Esta é uma tradução automática]
o migrate a operação não é capaz de processar todos os atributos do JBoss Web. Consulte as tabelas de referência a seguir para obter informações sobre como migrar manualmente os atributos não processados.
Atributos do Conector SSL da Web
Os seguintes atributos foram usados no JBoss EAP 6 para configurar o conector SSL. As bibliotecas nativas do OpenSSL não são suportadas no JBoss EAP 7, portanto não há configurações equivalentes.
| Atributos para remover [Esta é uma tradução automática] | Descrição | Undertow Equivalent |
|---|---|---|
|
ca-revocation-url |
O arquivo ou URL que contém a lista de revogação. |
Nenhum equivalente em Undertow. |
|
certificate-file |
Ao usar a criptografia OpenSSL, o caminho para o arquivo que contém o certificado do servidor. |
Nenhum equivalente em Undertow. |
|
ssl-protocol |
A cadeia do protocolo SSL. |
Nenhum equivalente em Undertow. |
|
verificar profundidade |
O número máximo de emissores de certificados intermediários verificados antes de decidir que os clientes não possuem um certificado válido. |
Nenhum equivalente em Undertow. |
Atributos de recursos estáticos da Web
Os seguintes static-resources atributos de elemento foram usados para descrever como os recursos estáticos eram manipulados pelo DefaultServlet ou pelo WebdavServlet. Não há equivalentes para esses atributos porque o WebDAV não é suportado pelo Undertow. Para mais informações, veja https://issues.jboss.org/browse/JBEAP-1036.
| Atributos para remover [Esta é uma tradução automática] | Descrição | Undertow Equivalent |
|---|---|---|
|
Desativado |
Ative o mapeamento de Servlet padrão. |
Nenhuma configuração equivalente no Undertow. |
|
codificação de arquivos |
Codificação de arquivo a ser usada ao ler arquivos estáticos. |
Nenhuma configuração equivalente no Undertow. |
|
max-depth |
Recursão máxima para |
Esta é uma configuração do WebDAV e o WebDAV não é suportado pelo Undertow. |
|
somente leitura |
Permitir gravação de métodos HTTP (PUT, DELETE). |
Esta é uma configuração do WebDAV e o WebDAV não é suportado pelo Undertow. |
|
segredo |
Segredo para operações de bloqueio do WebDAV. |
Esta é uma configuração do WebDAV e o WebDAV não é suportado pelo Undertow. |
|
sendfile |
Ative o sendfile, se possível, para arquivos maiores que o tamanho do byte especificado. |
Isso é definido como um valor padrão sensato em Undertow e não é configurável. |
|
webdav |
Ativar a funcionalidade do WebDAV. |
O WebDAV não é suportado pelo Undertow. |
Atributos de Recurso SSO da Web
O SSO é tratado de maneira diferente da versão anterior e não há configurações de atributos equivalentes no JBoss EAP 7.
| Atributo da Web do JBoss | Descrição | Undertow Equivalent |
|---|---|---|
|
cache-container |
Nome do contêiner de cache a ser usado para o SSO em cluster. |
Essa configuração não é mais necessária no Undertow. Isso funciona por padrão em um ambiente de cluster distribuído. |
|
cache-name |
Nome do cache a ser usado para o SSO em cluster. |
Essa configuração não é mais necessária no Undertow. Isso funciona por padrão em um ambiente de cluster distribuído. |
|
Migrar válvulas do autenticador [Esta é uma tradução automática] |
Se cada solicitação deve causar uma nova autenticação. |
Não há configuração equivalente em Undertow, que se comporta de maneira semelhante à |
Mapeamento dos atributos de mensagens [Esta é uma tradução automática]
| Atributo da Web do JBoss | Descrição | Undertow Equivalent |
|---|---|---|
|
resolve-hosts |
Se deve ativar os hosts de resolução para o log de acesso. |
Use a configuração no conector para obter o mesmo comportamento. |
Atributos do Conector da Web
| Atributo da Web do JBoss | Descrição | Undertow Equivalent |
|---|---|---|
|
executor |
O nome do executor que deve ser usado para processar os encadeamentos desse conector. |
Exemplo: propriedades de segurança definidas no Vejo Migrar a configuração do subsistema de threads Para maiores informações. |
|
ligação de proxy |
A ligação do soquete para definir o host e a porta usados ao enviar um redirecionamento. |
Não há equivalente direto. Vejo Atributos do https-listener no JBoss EAP Guia de configuração para opções de configuração disponíveis. |
|
porta de redirecionamento |
A porta para redirecionamento para um conector seguro. |
Este atributo foi preterido no JBoss EAP 6 e substituído por Vejo Atributos do https-listener no JBoss EAP Guia de configuração Para maiores informações. |
A.4. Migrar Referência de Propriedades do Sistema JBoss Web [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Esta referência descreve como mapear as propriedades do sistema anteriormente usadas para a configuração do JBoss Web para a configuração equivalente do Undertow no JBoss EAP 7.
|
Propriedade de Sistema do JBoss EAP 6 |
Descrição |
|
Equivalente no JBoss EAP 7 | |
|
jvmRoute |
Fornece um valor padrão para o
Suporta |
|
Operação de migração da CLI de gerenciamento [Esta é uma tradução automática] /subsystem=undertow:write-attribute(name=instance-id,value=VALUE)
| |
|
org.apache.tomcat.util.buf.StringCache.byte.enabled |
E se |
|
Substituir as configuraões Netty Servlet [Esta é uma tradução automática] | |
|
org.apache.tomcat.util.buf.StringCache.char.enabled |
E se |
|
Substituir as configuraões Netty Servlet [Esta é uma tradução automática] | |
|
org.apache.tomcat.util.buf.StringCache.cacheSize |
O tamanho do cache da cadeia. Se o valor não for especificado, o valor padrão de |
|
Substituir as configuraões Netty Servlet [Esta é uma tradução automática] | |
|
org.apache.tomcat.util.buf.StringCache.maxStringSize |
O comprimento máximo de String que será armazenado em cache. Se o valor não for especificado, o valor padrão de |
|
Substituir as configuraões Netty Servlet [Esta é uma tradução automática] | |
|
org.apache.tomcat.util.http.FastHttpDateFormat.CACHE_SIZE |
O tamanho do cache para usar valor de data analisado e formatado. Se o valor não for especificado, o valor padrão de |
|
Substituir as configuraões Netty Servlet [Esta é uma tradução automática] | |
|
org.apache.catalina.core.StandardService.DELAY_CONNECTOR_STARTUP |
E se |
|
Substituir as configuraões Netty Servlet [Esta é uma tradução automática] | |
|
org.apache.catalina.connector.Request.SESSION_ID_CHECK |
E se |
|
Substituir as configuraões Netty Servlet [Esta é uma tradução automática] | |
|
org.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER |
E se |
|
Deve ser ativado programaticamente implementando um | |
|
org.apache.tomcat.util.http.Parameters.MAX_COUNT |
O número máximo de parâmetros que podem ser analisados em um corpo de postagem. Se excedido, a análise falhará usando um |
|
Operação de migração da CLI de gerenciamento [Esta é uma tradução automática] /subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=max-parameters,value=VALUE) /subsystem=undertow/server=default-server/https-listener=default:write-attribute(name=max-parameters,value=VALUE) /subsystem=undertow/server=default-server/ajp-listener=default:write-attribute(name=max-parameters,value=VALUE)
| |
|
org.apache.tomcat.util.http.MimeHeaders.MAX_COUNT |
O número máximo de cabeçalhos que podem ser enviados na solicitação HTTP. Se excedido, a análise falhará usando um |
|
Operação de migração da CLI de gerenciamento [Esta é uma tradução automática] /subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=max-headers,value=VALUE) /subsystem=undertow/server=default-server/https-listener=default:write-attribute(name=max-headers,value=VALUE) /subsystem=undertow/server=default-server/ajp-listener=default:write-attribute(name=max-headers,value=VALUE)
| |
|
org.apache.tomcat.util.net.MAX_THREADS |
O número máximo de encadeamentos que um conector vai usar para processar solicitações. o valor padrão é |
|
Operação de migração da CLI de gerenciamento [Esta é uma tradução automática] /subsystem=io/worker=default:write-attribute(name=task-max-threads, value=VALUE)
| |
|
org.apache.coyote.http11.Http11Protocol.MAX_HEADER_SIZE |
O tamanho máximo dos cabeçalhos HTTP, em bytes. Se excedido, a análise falhará usando um |
|
Operação de migração da CLI de gerenciamento [Esta é uma tradução automática] /subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=max-header-size,value=VALUE) /subsystem=undertow/server=default-server/https-listener=default:write-attribute(name=max-header-size,value=VALUE) /subsystem=undertow/server=default-server/ajp-listener=default:write-attribute(name=max-header-size,value=VALUE)
| |
|
org.apache.coyote.http11.Http11Protocol.COMPRESSION |
Permite o uso de compactação simples com o conector HTTP. o valor padrão é |
|
Configure um filtro usando a CLI de gerenciamento: # Create a filter /subsystem=undertow/configuration=filter/gzip=gzipfilter:add() /subsystem=undertow/server=default-server/host=default-host/filter-ref=gzipfilter:add()
| |
|
org.apache.coyote.http11.Http11Protocol.COMPRESSION_RESTRICTED_UA |
Os agentes do usuário regexexam que não receberão conteúdo compactado. O valor padrão está vazio. |
|
Configure um predicado em um filtro usando a CLI de gerenciamento: # Use a predicate in a filter
/subsystem=undertow/configuration=filter/gzip=gzipfilter:add()
/subsystem=undertow/server=default-server/host=default-host/filter-ref=gzipfilter:add(predicate="regex[pattern='AppleWebKit',value=%{i,User-Agent}]")
| |
|
org.apache.coyote.http11.Http11Protocol.COMPRESSION_MIME_TYPES |
Prefixos de tipo de conteúdo de conteúdo compactável. o valor padrão é |
|
Configure um predicado em um filtro usando a CLI de gerenciamento: # Use a predicate in a filter
/subsystem=undertow/configuration=filter/gzip=gzipfilter:add()
/subsystem=undertow/server=default-server/host=default-host/filter-ref=gzipfilter:add(predicate="regex[pattern='text/html',value=%{o,Content-Type}]")
| |
|
org.apache.coyote.http11.Http11Protocol.COMPRESSION_MIN_SIZE |
Tamanho mínimo do conteúdo que será compactado. o valor padrão é |
|
Configure um predicado em um filtro usando a CLI de gerenciamento: # Use a predicate in a filter /subsystem=undertow/configuration=filter/gzip=gzipfilter:add() /subsystem=undertow/server=default-server/host=default-host/filter-ref=gzipfilter:add(predicate="max-content-size[value=MIN_SIZE]")
| |
|
org.apache.coyote.http11.DEFAULT_CONNECTION_TIMEOUT |
Tempo limite do soquete padrão. o valor padrão é |
|
Operação de migração da CLI de gerenciamento [Esta é uma tradução automática] /subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=no-request-timeout,value=VALUE) /subsystem=undertow/server=default-server/https-listener=default:write-attribute(name=no-request-timeout,value=VALUE) /subsystem=undertow/server=default-server/ajp-listener=default:write-attribute(name=no-request-timeout,value=VALUE)
| |
|
org.jboss.as.web.deployment.DELETE_WORK_DIR_ONCONTEXTDESTROY |
Use esta propriedade para remover |
|
Substituir as configuraões Netty Servlet [Esta é uma tradução automática] | |
|
org.apache.tomcat.util.buf.StringCache.trainThreshold |
Especifica o número de vezes |
|
Substituir as configuraões Netty Servlet [Esta é uma tradução automática] |
|
Propriedade de Sistema do JBoss EAP 6 |
Descrição |
|
Equivalente no JBoss EAP 7 | |
|
org.apache.el.parser.COERCE_TO_ZERO |
E se |
|
A propriedade do sistema ainda é válida e processada pelo EL |
|
Propriedade de Sistema do JBoss EAP 6 |
Descrição |
|
Equivalente no JBoss EAP 7 | |
|
org.apache.jasper.compiler.Generator.VAR_EXPRESSIONFACTORY |
O nome da variável a ser usada para a expressão expression language factory. Se o valor não for especificado, o valor padrão de |
|
A propriedade do sistema não foi alterada | |
|
org.apache.jasper.compiler.Generator.VAR_INSTANCEMANAGER |
O nome da variável a ser usada para a fábrica do gerenciador de instâncias. Se o valor não for especificado, o valor padrão de |
|
A propriedade do sistema não foi alterada | |
|
org.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING |
E se |
|
A propriedade do sistema não foi alterada | |
|
org.apache.jasper.Constants.DEFAULT_TAG_BUFFER_SIZE |
Qualquer buffer de tag que se expande além |
|
A propriedade do sistema não foi alterada | |
|
org.apache.jasper.runtime.JspFactoryImpl.USE_POOL |
E se |
|
A propriedade do sistema não foi alterada | |
|
org.apache.jasper.runtime.JspFactoryImpl.POOL_SIZE |
O tamanho do PageContext de ThreadLocal. Se o valor não for especificado, o valor padrão de |
|
A propriedade do sistema não foi alterada | |
|
org.apache.jasper.Constants.JSP_SERVLET_BASE |
A classe base dos Servlets gerada a partir das JSPs. Se o valor não for especificado, o valor padrão de |
|
A propriedade do sistema não foi alterada | |
|
org.apache.jasper.Constants.SERVICE_METHOD_NAME |
O nome do método de serviço chamado pela classe base. Se o valor não for especificado, o valor padrão de |
|
A propriedade do sistema não foi alterada | |
|
org.apache.jasper.Constants.SERVLET_CLASSPATH |
O nome do atributo ServletContext que fornece o caminho de classe para o JSP. Se o valor não for especificado, o valor padrão de |
|
A propriedade do sistema não foi alterada | |
|
org.apache.jasper.Constants.JSP_FILE |
O nome do atributo de solicitação para |
|
A propriedade do sistema não foi alterada | |
|
org.apache.jasper.Constants.PRECOMPILE |
O nome do parâmetro de consulta que faz com que o mecanismo JSP apenas pré-gerencie o servlet, mas não o invoque. Se o valor não for especificado, o valor padrão de |
|
A propriedade do sistema não foi alterada | |
|
org.apache.jasper.Constants.JSP_PACKAGE_NAME |
O nome do pacote padrão para páginas JSP compiladas. Se o valor não for especificado, o valor padrão de |
|
A propriedade do sistema não foi alterada | |
|
org.apache.jasper.Constants.TAG_FILE_PACKAGE_NAME |
O nome do pacote padrão para manipuladores de tag gerados a partir de arquivos de tags. Se o valor não for especificado, o valor padrão de |
|
A propriedade do sistema não foi alterada | |
|
org.apache.jasper.Constants.TEMP_VARIABLE_NAME_PREFIX |
Prefixo a ser usado para nomes de variáveis temporários gerados. Se o valor não for especificado, o valor padrão de |
|
A propriedade do sistema não foi alterada | |
|
org.apache.jasper.Constants.USE_INSTANCE_MANAGER_FOR_TAGS |
E se |
|
A propriedade do sistema não foi alterada | |
|
org.apache.jasper.Constants.INJECT_TAGS |
E se |
|
A propriedade do sistema não foi alterada |
|
Propriedade de Sistema do JBoss EAP 6 |
Descrição |
|
Equivalente no JBoss EAP 7 | |
|
org.apache.catalina.connector.RECYCLE_FACADES |
Se isso é |
|
Substituir as configuraões Netty Servlet [Esta é uma tradução automática] | |
|
org.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH |
Se isso é |
|
Substituir as configuraões Netty Servlet [Esta é uma tradução automática] | |
|
org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH |
Se isso é |
|
Operação de migração da CLI de gerenciamento [Esta é uma tradução automática] /subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=allow-encoded-slash,value=VALUE) /subsystem=undertow/server=default-server/https-listener=default:write-attribute(name=allow-encoded-slash,value=VALUE) /subsystem=undertow/server=default-server/ajp-listener=default:write-attribute(name=allow-encoded-slash,value=VALUE)
| |
|
org.apache.catalina.STRICT_SERVLET_COMPLIANCE |
Se o valor não for especificado, |
|
Compliant por padrão | |
|
org.apache.catalina.core.StandardWrapperValve.SERVLET_STATS |
E se |
|
Substituir as configuraões Netty Servlet [Esta é uma tradução automática] | |
|
org.apache.catalina.session.StandardSession.ACTIVITY_CHECK |
Se isso é |
|
Substituir as configuraões Netty Servlet [Esta é uma tradução automática] |
A.5. Compatibilidade e interoperabilidade entre os lançamentos [Esta é uma tradução automática] Copiar o linkLink copiado para a área de transferência!
Esta seção descreve a compatibilidade e interoperabilidade de cliente e servidor EJB e componentes de mensagem entre os lançamentos JBoss EAP 5, JBoss EAP 6, e JBoss EAP 7.
EJB remoto via IIOP
Você não deve encontrar problemas em quaisquer das seguintes configurações.
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
EJB remoto usando JNDI
Você não deve encontrar problemas em quaisquer das seguintes configurações.
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
JBoss EAP 6 fornecia suporte para a especificação EJB 3.1 e introduziu o uso de espaço de nomes JNDI globais padronizados, que ainda são usados em JBoss EAP 7. Devido à alteração dos espaço de nomes JNDI, as seguintes configurações não são compatíveis:
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
- Conexão a partir de um cliente JBoss EAP 7 ou JBoss EAP 6 para um servidor JBoss EAP 5
Para obter mais informações sobre alterações de namespace JNDI padronizadas, consulte Alterações no JNDI no JBoss EAP 6 Guia de Migração.
EJB remoto utilizando @WebService
Você não deve encontrar problemas em quaisquer das seguintes configurações.
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
Cliente autônomo de mensagem
Você não deve encontrar problemas em quaisquer das seguintes configurações.
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
Nas seguintes configurações, se o cliente estiver usando a API HornetQ de mensagem específica ao invés da API JMS genérica, a conexão é possível. Contudo, as pesquisas JNDI devem ser endereçadas utilizando a extensão de nome JNDI herdada de JBoss EAP que é distribuída com JBoss EAP 7.
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
O sistema de mensagens integrado ao JBoss EAP 7 não pode conectar-se ao HornetQ 2.2.x que é distribuído com JBoss EAP 5 devido a questões de incompatibilidade de protocolo. Por esta razão, as seguintes configurações não são compatíveis.
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
Migrar dados de mensagem [Esta é uma tradução automática]
Você não deve encontrar problemas em quaisquer das seguintes configurações.
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
Nas seguintes configurações, se o cliente estiver usando a API HornetQ de mensagem específica ao invés da API JMS genérica, a conexão é possível. Contudo, as pesquisas JNDI devem ser endereçadas utilizando a extensão de nome JNDI herdada de JBoss EAP que é distribuída com JBoss EAP 7.
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
O sistema de mensagens integrado ao JBoss EAP 7 não pode conectar-se ao HornetQ 2.2.x que é distribuído com JBoss EAP 5 devido a questões de incompatibilidade de protocolo. Por esta razão, as seguintes configurações não são compatíveis.
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
Pontes JMS
Você não deve encontrar problemas em quaisquer das seguintes configurações.
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
- Migrando do JBoss EAP 5 para o JBoss EAP 7 [Esta é uma tradução automática]
Revised on 2018-07-26 08:43:30 EDT