Libs no Servidor de Aplicações... é possível?

Hello Pessoas…

estamos começando com Java aqui onde trabalho e implantamos uma mini aplicação de teste para acesso a infra-estrutura, verificando performance, facilidade de implantação, arquitetura do servidor, etc.

Atualmente está rodando o GlassFish com a aplicação,um amigo está colocando pra rodar no TomCat e estamos estudando a possibilidade de colocar também o JBoss.

Aí estamos com algumas dúvdas a nível dessas implantações:

1 - para colocar uma nova aplicação funcionando, temos que colocar outro servidor em outro local, ou basta adicionar uma mesma instância do antigo (pelo que percebi, no GlassFish 3, ele trabalha com domínios, bastando eu criar um outro domínio para uma nova aplicação, isso procede ??), qual dos servers seria melhor a nível de comportar aplicações WEB e depois aplicações EE Corporativas ??? O Glass garante ? O TomCat garante ?;

2 - as libs que usaremos por padrão (como Hibernate, Struts, Spring, etc.), precisam sempre serem enviadas nos .war ou podem ficar em algum lugar padrão do servidor, com as aplicações enxergando esse repostório padrão ??

Creio que nossas principais barreiras iniciais são essas… Se algué puder ajudar…

Valew pela atenção galera :wink:

[quote=adriano_si]Hello Pessoas…

estamos começando com Java aqui onde trabalho e implantamos uma mini aplicação de teste para acesso a infra-estrutura, verificando performance, facilidade de implantação, arquitetura do servidor, etc.

Atualmente está rodando o GlassFish com a aplicação,um amigo está colocando pra rodar no TomCat e estamos estudando a possibilidade de colocar também o JBoss.

Aí estamos com algumas dúvdas a nível dessas implantações:

1 - para colocar uma nova aplicação funcionando, temos que colocar outro servidor em outro local, ou basta adicionar uma mesma instância do antigo (pelo que percebi, no GlassFish 3, ele trabalha com domínios, bastando eu criar um outro domínio para uma nova aplicação, isso procede ??), qual dos servers seria melhor a nível de comportar aplicações WEB e depois aplicações EE Corporativas ??? O Glass garante ? O TomCat garante ?;

2 - as libs que usaremos por padrão (como Hibernate, Struts, Spring, etc.), precisam sempre serem enviadas nos .war ou podem ficar em algum lugar padrão do servidor, com as aplicações enxergando esse repostório padrão ??

Creio que nossas principais barreiras iniciais são essas… Se algué puder ajudar…

Valew pela atenção galera ;)[/quote]

Com relação ao Glassfish:
[list]
Sim, se vc criar uma mesma instancia do antigo, vc poderá importar o código nela que irá funcionar normalmente;
Sim, na pasta raiz do domínio, tem uma pasta lib e dentro desta tem uma pasta ext. Os jars que vc colocar dentro desta ext serão automaticamente setados para serem usados dentro de um mesmo domínio
[/list]

[quote=ralphsilver]Com relação ao Glassfish:
[list]
Sim, se vc criar uma mesma instancia do antigo, vc poderá importar o código nela que irá funcionar normalmente;
Sim, na pasta raiz do domínio, tem uma pasta lib e dentro desta tem uma pasta ext. Os jars que vc colocar dentro desta ext serão automaticamente setados para serem usados dentro de um mesmo domínio
[/list][/quote]

Valew cara… mas a dúvida 1 é: se eu poderei ter várias aplicações dentro do mesmo servidor, sendo que com domínios diferentes ???

e a 2 entendi bacana, mas… a pasta ext é padrão para todos os domínios ou cada domínio tem a sua ext ???

Valew novamente, esclareceu bastante… :wink:

Olhei agora e ví que a pasta ext está presente por domínio e não para todo o server…

Aí entraria no mesmo problema de ter replicação de biblioteca, não ??

Outra dúvida que surgiu, foi o fato de enviar o .war pra lá sem a IDE… como faremos pra gerar o .war sem que dê erro de compilação (por falta das libs) …

Valew pela paciência :wink:

Dentro de um servidor, você pode ter vários domínios dentro dele. No bin glassfish tem o comando asadmin para ações feitos via shell. se vc usar asadmin create-domain e utilizar os parametros necessários, vc cria mais domínios para o glassfish. Agora, com relação a gerar war sem erro de compilação: eu uso o netbeans e, quando eu não preciso subir ele no war, eu coloco na biblioteca de testes para ele não ir na lib direto. Qual ide que vc usa?

[quote=adriano_si]Olhei agora e ví que a pasta ext está presente por domínio e não para todo o server…

Aí entraria no mesmo problema de ter replicação de biblioteca, não ??

Outra dúvida que surgiu, foi o fato de enviar o .war pra lá sem a IDE… como faremos pra gerar o .war sem que dê erro de compilação (por falta das libs) …

Valew pela paciência ;)[/quote]

Como assim replicação de biblioteca?.. o domínio só conseguirá enxergar a sua pasta ext

Valew cara… mas a minha dúvida é a seguinte… você vai colocar 2 aplicações em um mesmo server GF…

1 - a aplicação A que precisa dos seguintes Frameworks - F1, F2 e F3;

2 - B, que precisa dos Frameworks - F1, F3 e F4;

Nesse cenário, vou criar 2 domínios (uso o NetBeans). O D1(aplicação A) e o D2(aplicação B)… Lá no ext do D1 terei que ter F1, F2 e F3, correto ?? e no ext do D2 terei que ter F1, F3 e F4;

O cenário que eu quero evitar é esse… tenho F1 e F3 replicando-se em 2 servers diferentes… aí agora creio que minha dúvida será sanada… Tem algum lugar que posso colocar as Libs no server, sem necessidade de replicá-las no server ??

Falows :wink:

Valew cara… mas a minha dúvida é a seguinte… você vai colocar 2 aplicações em um mesmo server GF…

1 - a aplicação A que precisa dos seguintes Frameworks - F1, F2 e F3;

2 - B, que precisa dos Frameworks - F1, F3 e F4;

Nesse cenário, vou criar 2 domínios (uso o NetBeans). O D1(aplicação A) e o D2(aplicação B)… Lá no ext do D1 terei que ter F1, F2 e F3, correto ?? e no ext do D2 terei que ter F1, F3 e F4;

O cenário que eu quero evitar é esse… tenho F1 e F3 replicando-se em 2 servers diferentes… aí agora creio que minha dúvida será sanada… Tem algum lugar que posso colocar as Libs no server, sem necessidade de replicá-las no server ??

Falows ;)[/quote]

Então adriano, com relação a isso, pode ficar tranquilo porque cada domínio tem uma pasta ext. Um domínio não enxerga a pasta ext do outro, não replicando libs.

Valew cara… mas a minha dúvida é a seguinte… você vai colocar 2 aplicações em um mesmo server GF…

1 - a aplicação A que precisa dos seguintes Frameworks - F1, F2 e F3;

2 - B, que precisa dos Frameworks - F1, F3 e F4;

Nesse cenário, vou criar 2 domínios (uso o NetBeans). O D1(aplicação A) e o D2(aplicação B)… Lá no ext do D1 terei que ter F1, F2 e F3, correto ?? e no ext do D2 terei que ter F1, F3 e F4;

O cenário que eu quero evitar é esse… tenho F1 e F3 replicando-se em 2 servers diferentes… aí agora creio que minha dúvida será sanada… Tem algum lugar que posso colocar as Libs no server, sem necessidade de replicá-las no server ??

Falows ;)[/quote]

Então adriano, com relação a isso, pode ficar tranquilo porque cada domínio tem uma pasta ext. Um domínio não enxerga a pasta ext do outro, não replicando libs.[/quote]

Pois é cara… acho que ainda não fui claro… hehehehehehe O que eu queria na verdade era um lugar padrão onde ficasse F1, F2, F3 e F4, ou seja, cada sistema novo que chegasse, iria nesse “REPOSITÓRIO ÚNICO DE LIBRARIES” e usaria as que lhe fossem necessárias, sem eu ter que colocar F1, por exemplo, na pasta EXT de 2 domínios diferentes…

Abraços :wink:

Valew cara… mas a minha dúvida é a seguinte… você vai colocar 2 aplicações em um mesmo server GF…

1 - a aplicação A que precisa dos seguintes Frameworks - F1, F2 e F3;

2 - B, que precisa dos Frameworks - F1, F3 e F4;

Nesse cenário, vou criar 2 domínios (uso o NetBeans). O D1(aplicação A) e o D2(aplicação B)… Lá no ext do D1 terei que ter F1, F2 e F3, correto ?? e no ext do D2 terei que ter F1, F3 e F4;

O cenário que eu quero evitar é esse… tenho F1 e F3 replicando-se em 2 servers diferentes… aí agora creio que minha dúvida será sanada… Tem algum lugar que posso colocar as Libs no server, sem necessidade de replicá-las no server ??

Falows ;)[/quote]

Então adriano, com relação a isso, pode ficar tranquilo porque cada domínio tem uma pasta ext. Um domínio não enxerga a pasta ext do outro, não replicando libs.[/quote]

Pois é cara… acho que ainda não fui claro… hehehehehehe O que eu queria na verdade era um lugar padrão onde ficasse F1, F2, F3 e F4, ou seja, cada sistema novo que chegasse, iria nesse “REPOSITÓRIO ÚNICO DE LIBRARIES” e usaria as que lhe fossem necessárias, sem eu ter que colocar F1, por exemplo, na pasta EXT de 2 domínios diferentes…

Abraços ;)[/quote]

ahhh… putz… ehheeh agora que entendi… bom aí nesse caso vc pode estar setando na variável de ambiente CLASSPATH (eu não conheço outra forma) … mas vc não teria problemas com versões de apis? Por exemplo: vc usa em um projeto estável e em produção o hibernate 3.1.0… aí vc começa um projeto e usa uma versão atual do hibernate 3.4.0… vc pode ter problemas se vc for unificar o hibernate por conta de diferença de versões… geralmente eu uso um padrão para driver de banco… fora isso… eu sempre subo lib no próprio projeto por conta disso.

hehehehehee, eu tava me expressando mal mesmo…

Como seria esse padrão para uso do Driver JDBC ??? Você coloca o Driver uma vez e faz suas aplicações o enxergarem nesse local padrão ?? Usas DataSource ??

[quote=adriano_si]hehehehehee, eu tava me expressando mal mesmo…

Como seria esse padrão para uso do Driver JDBC ??? Você coloca o Driver uma vez e faz suas aplicações o enxergarem nesse local padrão ?? Usas DataSource ??

[/quote]

Sim, tanto aplicação local quanto JDBC Resources … quando eu instancio um domínio eu seto os drivers jdbc na pasta ext do domínio em questão…