| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/01/2008 11:22:39
|
andrefariagomes
JavaBaby
![[Avatar]](/images/avatar/26ff6f4ca1cfca4861eb91876f706746.png)
Membro desde: 18/09/2004 11:10:06
Mensagens: 90
Offline
|
Tenho um aplicativo web (war - somente servlets e jsps) e preciso utilizar alguns recursos de aplicativos enterprise (ear - ejb, jms, wars..) então quero passar a distribuí-lo no JBoss, porém hoje fazemos deploy de várias instancias deste mesmo aplicativo no mesmo servidor (tomcat), porque temos um produto que mantemos para vários clientes (a única diferença entre as instancias é o banco de dados que cada uma acessa, e algumas configurações em properties).
Seria possível ter várias instancias do mesmo aplicativo (ear) no mesmo jboss?
E enquanto ao jndi dos ejbs, e namespaces do ejbs e datasources que compartilham o mesmo namespace?
Alguém faz esse tipo de coisa, ou sabe se é possível?
|
Abraço,
André Faria
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/01/2008 11:38:01
|
LeoMarola
JavaGuru
![[Avatar]](/images/avatar/e896db75d35788e14104e4eb490e725b.jpg)
Membro desde: 17/07/2006 10:35:11
Mensagens: 201
Localização: Rio de Janeiro
Offline
|
Bom dia André,
Essa solução não é muito 'ortodoxa'. Vai te dar um trabalho doido para replicar além de sugar uma boa memória do seu JBOSS...
Pq a aplicação não trata o cliente e customiza de forma programática.. é bem menos dor de cabeça!
Abraços.
|
@Test
SCJP 5
SCWCD 5
SCBCD 5
SCEA 5 (Starting..)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/01/2008 12:29:25
|
Aldrin Leal
JavaEvangelist
![[Avatar]](/images/avatar/ea8cd589f6cde4edf01ef2ad6b2d67d9.png)
Membro desde: 10/07/2007 17:04:34
Mensagens: 330
Localização: Belem / PA / Brazil
Offline
|
André,
Realmente, não é fácil, mas você pode utilizar o recurso de partições
|
-- Aldrin Leal, http://www.leal.eng.br/mnemetica/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/01/2008 22:51:13
|
psevestre
JavaEvangelist
Membro desde: 13/05/2005 12:53:19
Mensagens: 426
Localização: São Paulo
Offline
|
andrefariagomes wrote:
Seria possível ter várias instancias do mesmo aplicativo (ear) no mesmo jboss?
E enquanto ao jndi dos ejbs, e namespaces do ejbs e datasources que compartilham o mesmo namespace?
Exatamente o mesmo não, mas acho que você poderia chegar a algo próximo disto usando o seguinte artifício:
1. Refatore seu código de forma que o código nos componentes do EAR façam referência apenas a nomes JNDI no namespace local ("comp").
2. Use o mecanismo de "alt-dd" para injetar descritores específicos de cada cliente no ear básico, onde vc. fará as associações dos nomes lógicos de datasources utilizados com os nomes fisicos, resultando em um ear parametrizado para o cliente.
O passo 2 deve ser automatizado via ant ou algo semelhante, simplificando assim o processo de implantação.
|
http://justaphilpicks.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/01/2008 10:54:16
|
andrefariagomes
JavaBaby
![[Avatar]](/images/avatar/26ff6f4ca1cfca4861eb91876f706746.png)
Membro desde: 18/09/2004 11:10:06
Mensagens: 90
Offline
|
Este recurso de alt-dd funciona com JBoss?
Na documentação não consta nada...
This message was edited 1 time. Last update was at 21/01/2008 11:42:58
|
Abraço,
André Faria
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/01/2008 11:33:45
|
psevestre
JavaEvangelist
Membro desde: 13/05/2005 12:53:19
Mensagens: 426
Localização: São Paulo
Offline
|
andrefariagomes wrote:Este recurso de alt-dd funciona com JBoss?
Na documentação não costa nada...
Faz parte da spec e o JBoss diz que está em conformidade, portanto assumo que sim. Note que alguns dos mapeamentos podem ser controlados via descritores específicos do JBoss (jboss-app, jboss-web). O princípio seria o mesmo: um ear "genérico" que seria customizado via adição de descritores, gerando assim um ear específico para o cliente.
|
http://justaphilpicks.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/01/2008 16:57:35
|
andrefariagomes
JavaBaby
![[Avatar]](/images/avatar/26ff6f4ca1cfca4861eb91876f706746.png)
Membro desde: 18/09/2004 11:10:06
Mensagens: 90
Offline
|
Ótimo!!! Muito obrigdo pela dica!
Porém estou com um último problema...
No persistent unit eu tenho que definir um datasource (persistence.xml):
<persistence-unit name="tecPU" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<non-jta-data-source>java:/tecDS</non-jta-data-source>
e este datasource é criado através de um arquivo *-ds.xml que é colocado no JBoss e o JBoss sempre o cria em dominio publico no JNDI...
Sabe como eu poderia resolver este problema sem ter que criar um arquivo persistence.xml para cada cliente?
|
Abraço,
André Faria
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/01/2008 19:16:38
|
psevestre
JavaEvangelist
Membro desde: 13/05/2005 12:53:19
Mensagens: 426
Localização: São Paulo
Offline
|
andrefariagomes wrote:Ótimo!!! Muito obrigdo pela dica!
Porém estou com um último problema...
No persistent unit eu tenho que definir um datasource (persistence.xml):
<persistence-unit name="tecPU" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<non-jta-data-source>java:/tecDS</non-jta-data-source>
e este datasource é criado através de um arquivo *-ds.xml que é colocado no JBoss e o JBoss sempre o cria em dominio publico no JNDI...
Sabe como eu poderia resolver este problema sem ter que criar um arquivo persistence.xml para cada cliente?
Troque o "java:/tecDS" por um nome local à aplicação, p.ex java:comp/env/jdbc/tecDS.
No arquivo jboss.xml vc. faz o bind deste nome para o nome do datasource específico do cliente.
Dê uma olhada na documentação do JBoss sobre "ENC names", onde há informação detalhada sobre o assunto.
|
http://justaphilpicks.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/01/2008 12:28:39
|
andrefariagomes
JavaBaby
![[Avatar]](/images/avatar/26ff6f4ca1cfca4861eb91876f706746.png)
Membro desde: 18/09/2004 11:10:06
Mensagens: 90
Offline
|
Fiz o seguinte:
/META-INF/jboss.xml
No persistence.xml:
No teste-ds.xml
O seguinte erro me é apresentado:
--- MBeans waiting for other MBeans ---
ObjectName: persistence.units:ear=tec-importer-ear.ear,jar=tec-ejb-finanImporter.jar,unitName=tecPU
State: NOTYETINSTALLED
I Depend On:
jboss.jca:name=comp/env/tecDS,service=DataSourceBinding
Depends On Me:
jboss.j2ee:ear=tec-importer-ear.ear,jar=tec-ejb-finanImporter.jar,name=TecFinanImporterBean,service=EJB3
O que pode estar faltando?
|
Abraço,
André Faria
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/01/2008 18:44:14
|
psevestre
JavaEvangelist
Membro desde: 13/05/2005 12:53:19
Mensagens: 426
Localização: São Paulo
Offline
|
Tente colocar o "nome completo" (java:/comp/env...) no persistence.xml
|
http://justaphilpicks.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/01/2008 19:19:47
|
andrefariagomes
JavaBaby
![[Avatar]](/images/avatar/26ff6f4ca1cfca4861eb91876f706746.png)
Membro desde: 18/09/2004 11:10:06
Mensagens: 90
Offline
|
hummm. ...
não resolve...
|
Abraço,
André Faria
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/03/2009 10:35:20
|
apalmeira
JavaGuru
Membro desde: 01/11/2006 00:48:21
Mensagens: 239
Offline
|
Olá amigo,
você conseguiu resolver? estou com o mesmo problema!
Grato.
|
|
|
 |
|
|