quarta-feira, 2 de julho de 2014

Realizando acesso externo a um servidor JBoss

Ontem meu grande brother Miller precisou de uma mão nesse ponto e então surgiu a idéia de fazer esse post. Hoje vou falar sobre como acessar externamente diferentes versões do JBoss.

Primeiramente, vamos situar o problema. Voce é desenvolvedor e utiliza o JBoss para testar seu projeto na sua própria máquina. Até aí tudo bem. Tudo funciona. No entanto, no momento de por o projeto em homologação do cliente ou então em produção, voce não consegue mais acessar o servidor. Porque ?
É simples. O JBoss vem configurado apenas para acessos locais (da própria máquina que está instalado). Quando o acesso vem da rede, ele é negado.

Como corrigir isso ?

JBoss 4.X e 5.X

Para esses JBoss, sendo os mais famosos as versões 4.2.3 e 5.0.1, temos a mesma forma de liberar acesso externo. Basta adicionarmos o comando -b 0.0.0.0 !! Isso por si só já libera acessos da rede ao JBoss. Mas onde colocarmos esse comando ?? Aqui dividimos em duas partes:

  1. Iniciar JBoss pelo Eclipse

    Existem várias formas de iniciar o servidor pelo eclipse. A primeira é pela view de Server
    No entanto dessa forma, não nos permite mexer na configuração do JBoss.



    Então nós iremos pelo botão de RUN do eclipse que é esse verde do meio na imagem abaixo.



    Tudo que é iniciado pelo eclipse (seja servidor, programa java standalone ou programa android) fica no histórico. E ao clicar na setinha para baixo ao lado do botao de RUN, temos o histórico e a opção Run Configurations que é onde iremos clicar.


    Quando abrimos essa tela de configuração de execução, será mostrado as configurações do ultimo RUN executado (que no meu caso é do servidor).



    Repare que na tela à esquerda, abaixo de Generic Server temos a configuração do JBoss v4.2 at localhost que é o que quero alterar.
    Ao abrir na tela direita as configurações de startup do servidor, clica na aba Arguments para colocar nossa opção -b 0.0.0.0 como Program Argument de execução do servidor. Agora basta clicar em Apply e Run. Pronto! Seu servidor estará acessível de outras máquinas.

    OBS.: Execute o mesmo procedimento para DEBUG
  2. Iniciar JBoss por linha de comando

    Quando o startup do JBoss é feito apenas por linha de comando (que é o caso de servidores sem interface gráfica - até porque ninguém abre o eclipse dentro de um servidor pra iniciar o JBoss), temos que passar esse argumento na linha de comando. Isso pode ser feito de dois jeitos.
    1. bash run.sh --host 0.0.0.0

      Para subir o jboss é necessário entrar no diretório de instalação do JBoss, acessar a pasta bin e executar o arquivo run.sh. Se voce estiver em um windows, deve executar run.bat. Agora basta passar como argumento --host 0.0.0.0 e pronto! Todo mundo por acessar seu JBoss.
    2. bash run.sh -Djboss.bind.address=0.0.0.0

      É o mesmo que a opção 1 mas dito de outro jeito. Ambas funcionam

JBoss 7.X e 8.0.1 (Wildfly)

Para o JBoss 7 e 8, cujo versões mais famosas é a 7.1.1 e 8.1.0, muda um pouco a forma de fazer essa configuração. Isso porque o servidor foi reestruturado com a idéia de domínios (assim como o glassfish já fazia). 
Agora temos a opção de subirmos domínios do JBoss ou também subir standalone (que é a forma como as versões antigas faziam).

Para essa versão do JBoss, vamos realizar o acesso pelo JBoss standalone. Para isso vamos acessar o arquivo standalone.xml que fica em $JBOSS_HOME/standalone/configuration.standalone.xml e busca pela palavra inet . Basta colocar o "famoso" 0.0.0.0 nesse endereços.



A imagem acima mostra que coloquei em todos. No entanto só é necessário e recomendado, colocar o 0.0.0.0 na interface com nome public. Não é necessário colocar em todos como foi feito na imagem acima.

Lembre-se... Se voce estiver em ambiente corporativo, pode ser necessário criar regra em firewall para liberar acesso.
Qualquer dúvida que voce tiver, posta aí que vou dar um jeito.

Abraço!!!


Nenhum comentário:

Postar um comentário