Last Updated on 27/12/2023
Esse tutorial irá mostrar como habilitar o acesso remoto no Wildfly, de modo que você possa gerenciar seu servidor de aplicação remotamente.
O Problema
Acredito que qualquer um esteja acostumado a instalar o Wildfly em um computador local com uma interface gráfica e navegadores de internet disponíveis. Deste modo, quando você precisa acessar a página administrativa do seu Wildfly através do link http://localhost:8080/ para gerenciar seu servidor de aplicação, tudo funciona como esperado.
Porém, se o Wildfly estiver rodando em um computador remoto e você tentar acessar sua página administrativa através da rede pelo seu endereço de IP ou hostname, como http://54.94.240.170:8080/ por exemplo, você provavelmente verá uma bela mensagem dizendo algo como Esta página da web não está disponível, em outras palavras, o Wildfly disse “Não, obrigado, eu não estou aceitando requisições de outros caras a não ser os que estão em minha máquina local”.
A Primeira Possível Solução
Pularemos direto para a solução mais rápida para habilitar o acesso remoto, mas você poderá encontrar a explicação de como e porque isso funciona ao final deste tutorial.
Antes de continuar, certifique-se de que a máquina que o seu Wildfly está executando está aceitando requisições TCP nas portas 8080 e 9990.
Se o seu Wildfly estiver executando, acesse seu diretório bin e execute os seguintes comandos para pará-lo:
cd /opt/wildfly-8.2.0.Final/bin ./jboss-cli.sh --connect --command=:shutdown
Em seguida, inicie seu Wildfly utilizando o comando abaixo, o qual adiciona os parâmetros que habilitam o acesso remoto a partir de qualquer origem (IP/hostname) à página administrativa.
./standalone.sh -b 0.0.0.0 -bmanagement 0.0.0.0 &
Pronto!
A Segunda Possível Solução
Como alternativa à adicionar parâmetros ao seu comando de inicialização, você pode editar seu standalone.xml
para habilitar o acesso remoto à partir de qualquer origem. Essa abordagem é mais recomendada se você costuma acessar sua página administrativa com frequência, deste modo, você não precisará se lembrar de enviar parâmetros adicionais ao comando de inicialização, como mostrado anteriormente.
Primeiramente, acesse o diretório de configuração de seu Wildfly:
cd /opt/wildfly-8.2.0.Final/standalone/configuration
Em seguida, edite o arquivo standalone.xml
utilizando seu editor de arquivos predileto e realize as alterações abaixo:
Substitua isso:
<interface name="management"> <inet-address value="${jboss.bind.address.management:127.0.0.1}"/> </interface> <interface name="public"> <inet-address value="${jboss.bind.address:0.0.0.0}"/> </interface>
Por isso:
<interface name="management"> <any-address/> </interface> <interface name="public"> <any-address/> </interface>
Certifique-se de gravar suas alterações e reinicie seu Wildfly:
/opt/wildfly-8.2.0.Final/bin/jboss-cli.sh --connect --command=:reload
Feito.
A Explicação
A breve história é que, devido à questões de segurança, o Wildfly não deseja expor seus serviços em portas que podem ser acessadas sem a devida autorização. Um destes serviços é o JMX, o qual é utilizado para gerenciar servidores Java através da porta 9990.
Por padrão, o JMX irá permitir apenas conexões originadas de seu local, como foi possível observar no arquivo standalone.xml
. Para alterar este comportamento, você precisa permitir que outros hosts se conectem ao JMX, através de uma das soluções propostas.
Em ambientes de produção e por questões de segurança, tenha cuidado ao expor esse serviço, sendo recomendada a especificação de quais hosts confiáveis poderão acessar o serviço, ao invés de expô-lo a qualquer um, como fizemos neste tutorial.
Espero que ajude. Até mais!
Show! Claro e Objetivo!
Parabens
Bom dia.
Parabéns pela iniciativa, me ajudou bastante.. eu estava tendo um problema mesmo colocando os comandos, porém depois eu vi que tinha escrito o “address” errado..
Valeu!!
Ajudou muito! Direto!
mt foda, funcionou na versão 11, wildfly…
vlw
Cara você salvou minha vida, muito obrigado !!!!!
Fico feliz que eu tenha ajudado!
Muito bom, bgasparotto! Funcionou perfeitamente aqui, foi uma mão na roda isso. Obrigado!
Fico muito feliz que tenha te ajudado! Volte sempre =]
Obrigado, a segunda solução funciona perfeitamente no JBoss Application Server 8
Fico feliz em ter ajudado =]
Post muito bom, só que não conseguir fazer funcionar com nenhuma das opções, existe mais algum método ??
Você recebeu algum erro ou o servidor iniciou e você simplesmente continuou sem acesso? Você está utilizando uma versão superior do Wildfly? Se sim, qual?
Testei agora as duas opções no Wildfly 10 e as duas funcionaram.
Bom saber! Em breve irei atualizar o post para a versão 10. Obrigado!