Instalar dois JBoss na mesma máquina

Olá pessoal,

Eu quero colocar mais um JBoss na minha máquina, para poder rodar outras aplicações que eu faço de teste (o outro JBoss eu utilizo para aplicações do trabalho, mesmo).

Criei outra variável de ambiente JBOSS_HOME2 apontando para o novo JBoss e alterei o arquivo {JBOSS_HOME2}/bin/run.bat, referenciando JBOSS_HOME2 ao invés do JBOSS_HOME dentro dele.

Quando executo o run.bat aparece um erro:

[code]09:42:56,900 ERROR [URLDeploymentScanner] MBeanException: Exception in MBean ope
ration ‘checkIncompleteDeployments()’
Cause: Incomplete Deployment listing:
Packages waiting for a deployer:
[org.jboss.deployment.DeploymentInfo@4f3faea0 { url=file:/C:/jboss_pos/server/de
fault/deploy/http-invoker.sar/invoker.war/ }
deployer: null
status: Starting
state: INIT_WAITING_DEPLOYER
watch: file:/C:/jboss_pos/server/default/deploy/http-invoker.sar/invoker.war/
lastDeployed: 1122381763759
lastModified: 1122304683553
mbeans:
, org.jboss.deployment.DeploymentInfo@f4c44c90 { url=file:/C:/jboss_pos/server/d
efault/deploy/jms/jbossmq-httpil.sar/jbossmq-httpil.war/ }
deployer: null
status: Starting
state: START_SUBDEPLOYMENTS
watch: file:/C:/jboss_pos/server/default/deploy/jms/jbossmq-httpil.sar/jbossmq
-httpil.war/
lastDeployed: 1122381769743
lastModified: 1122304683335
mbeans:
, org.jboss.deployment.DeploymentInfo@4da2dd6b { url=file:/C:/jboss_pos/server/d
efault/deploy/jmx-console.war/ }
deployer: null
status: null
state: INIT_WAITING_DEPLOYER
watch: file:/C:/jboss_pos/server/default/deploy/jmx-console.war/
lastDeployed: 1122381774400
lastModified: 1122304758397
mbeans:
, org.jboss.deployment.DeploymentInfo@1a7ed841 { url=file:/C:/jboss_pos/server/d
efault/deploy/management/web-console.war }
deployer: null
status: null
state: INIT_WAITING_DEPLOYER
watch: file:/C:/jboss_pos/server/default/deploy/management/web-console.war
lastDeployed: 1122381775759
lastModified: 1122381774431
mbeans:
, org.jboss.deployment.DeploymentInfo@707e8917 { url=file:/C:/jboss_pos/server/d
efault/tmp/deploy/tmp34378gerenciamentoConsultores.ear-contents/gerenciamentoCon
sultores.war }
deployer: null
status: Starting
state: START_SUBDEPLOYMENTS
watch: file:/C:/jboss_pos/server/default/tmp/deploy/tmp34378gerenciamentoConsu
ltores.ear-contents/gerenciamentoConsultores.war
lastDeployed: 1122381776587
lastModified: 1122381776259
mbeans:
]Incompletely deployed packages:
[org.jboss.deployment.DeploymentInfo@4da2dd6b { url=file:/C:/jboss_pos/server/de
fault/deploy/jmx-console.war/ }
deployer: null
status: null
state: INIT_WAITING_DEPLOYER
watch: file:/C:/jboss_pos/server/default/deploy/jmx-console.war/
lastDeployed: 1122381774400
lastModified: 1122304758397
mbeans:
, org.jboss.deployment.DeploymentInfo@1a7ed841 { url=file:/C:/jboss_pos/server/d
efault/deploy/management/web-console.war }
deployer: null
status: null
state: INIT_WAITING_DEPLOYER
watch: file:/C:/jboss_pos/server/default/deploy/management/web-console.war
lastDeployed: 1122381775759
lastModified: 1122381774431
mbeans:
]MBeans waiting for classes:
<none>
MBeans waiting for other MBeans:
[ObjectName: jboss.web:service=WebServer
state: FAILED
I Depend On: jboss:service=TransactionManager

Depends On Me: jboss.mq:service=InvocationLayer,type=HTTP
java.lang.LinkageError: duplicate class definition: org/apache/commons/collectio
ns/ArrayStack, ObjectName: jboss.mq:service=InvocationLayer,type=HTTP
state: CONFIGURED
I Depend On: jboss.mq:service=Invoker
jboss.web:service=WebServer

Depends On Me: ]
09:42:56,931 INFO [URLDeploymentScanner] Started
09:42:56,993 INFO [MainDeployer] Deployed package: file:/C:/jboss_pos/server/de
fault/conf/jboss-service.xml
09:42:56,993 INFO [Server] JBoss (MX MicroKernel) [3.2.2RC2 (build: CVSTag=JBos
s_3_2_2_RC2 date=200307231513)] Started in 16s:781ms
[/code]

E quando tento entrar pelo browser web digitando http://localhost:8080
dá página não encontrada.
Alguém já instalou 2 JBoss na mesma máquina com sucesso?

Obrigado

Até mais do que isto :slight_smile:

Prefiro, no entanto usar múltiplos IPs/configurações e usar uma única instalação
do JBOSS. Desta forma mantenho a instalação original do JBOSS “intocada”, o que facilita eventuais upgrades.

Para tanto, basta adicionar IPs à sua máquina e usar a opção --host=um.dos.ips na hora de iniciar a configuração desejada.

Por exemplo, digamos que eu precise de duas configurações - teste e homologação - na mesma máquina (você não faz desenvolvimento e homologação na máquina de produção, certo ? :wink: ).

A primeira coisa que faço é criar as configurações do JBoss, tipicamente copiando o diretório $JBOSS_HOME/server/default para $JBOSS_HOME/server/teste e $JBOSS_HOME/server/homologacao.

Em cada um dos diretórios, crio os recursos necessários para a aplicação (datasources, mail, etc).

Isto feito, adiciono um IP à minha placa, usando o procedimento padrão do SO em que vc. estiver trabalhando (ex: em Linux, /sbin/ifconfig eth0:1 192.168.0.55 ).

Agora, para executar:

  • configuração de homologação:
    cd $JBOSS_HOME/bin
    ./run.sh -c homolog --host=seu.ip.normal

  • configuração de homologação
    cd $JBOSS_HOME/bin
    ./run.sh -c teste --host=ip.de.teste

Olá,

Eu não entendi direito esta parte

[quote]
Isto feito, adiciono um IP à minha placa, usando o procedimento padrão do SO em que vc. estiver trabalhando (ex: em Linux, /sbin/ifconfig eth0:1 192.168.0.55 ). [/quote]

Você sabe como eu faço isso no Windows XP Professional?

Obrigado

[quote=Roger75]Olá,

Eu não entendi direito esta parte

[quote]
Isto feito, adiciono um IP à minha placa, usando o procedimento padrão do SO em que vc. estiver trabalhando (ex: em Linux, /sbin/ifconfig eth0:1 192.168.0.55 ). [/quote]

Você sabe como eu faço isso no Windows XP Professional?

Obrigado[/quote]

  1. Control Panel/Network Connections/Local Area Connection
  2. Selecione o item Internet Protocol
  3. Clique em “Properties”
  4. Caso não esteja já configurado assim, troque a opção “Obtain an IP address automatically” para “Use the following IP address”.
  5. Preencha os dados com os da sua conexão “normal”
  6. Clique em Advanced…
  7. Adicione outros endereços/gateways à vontade.

Se isto não resolver, contate seu administrador de rede (pela sua dúvida, assumo que vc. não é o da sua).

Este jeito de criar outro IP achei meio complexo, o meu computador não mostra este caminho para configurar outro IP do jeito que você falou. Acho que vou instalar outro JBoss mesmo, você já fez assim?

Adicionar o IP é mais fácil. Vai por mim…

Se vc. achou “complexo” adicionar o IP, uma alternativa é botar duas placas de rede no servidor !

Outra possibilidade é ter a instância de testes ligada apenas ao localhost. O problema é que, neste caso, vc. só terá acesso à aplicação usando um browser que rode na mesma máquina.

Note bem: a questão não é ter uma ou duas instalações de JBoss, mas rodar as duas instâncias na mesma máquina. Como o JBoss aloca uma série de portas TCP locais para os componentes de serviço, a configuração padrão (sem especificar o IP) alocará a porta em todos os IPs disponíveis. Isto significa que apenas uma das instâncias irá subir com sucesso. No log da outra você verá uma série de mensagens do tipo “Address already in use”.

Eu fiz aqui na empresa, 2 jboss se conversarem via HTTP, para isso precisei criar uma outra aplicação na mesma pasta do jboss alterando somente as portas dos serviços. É isso que voce está tentando fazer?

Acho que o kra estava querendo rodar um, depois rodar o outro… meio que seqüencialmente. Mas bom seria (pelo menos para mim) poder rodar em paralelo, na mesma máquina, os JBoss. E se possível instâncias do mesmo.
Da forma que falaram aí (que é bem interessante, também), mudando o IP, acho que não dá pra colocar em paralelo.

[]'s