MAVEN + EJB Empacotado em Jars

9 respostas
Marcio_N_Carvalho

Boa Tarde Pessoal,

Acabei de migrar para a area de Desenvolvimento WEB, como é de se imaginar muitas dúvidas surgem (principalmente no começo).
Temos a Tarefa de migrar alguns Processos de uma aplicação em DELPHI (um ERP) para JAVA e estamos estudando a arquitetura do projeto.
Estou lendo alguns artigos sobre EJB que é o que pretendemos utilizar e gostaria de saber (se alguem puder esclarecer eu agradeço):
1 - É possivel a criação de um conjunto de EJBs empacotados em Jars representando as dlls que são utilizadas na aplicação DELPHI (essa ideia surgiu por causa
da necessidade constante de troca de arquivos “dlls” em nossa aplicação atual, no caso do Java seria só sobrepor minhas interfaces EJBs)? Como isso é gerenciado no Servidor?
2 - Na necessidade de manutenção ou substituição em minhas interfaces EJBs é necessário recompilar o projeto?

Alguem pode me ajudar?

Desde já agradeço…

[Marcio]

9 Respostas

gobbo

Primeiramente cara, quando voce muda de paradigma ou de plataforma, tente não fazer comparações com seu paradigma antigo.

Você pode utilizar uma ferramenta de controle de dependencias entre projetos. O maven é uma opção. Você pode sim gerar um pacote exclusivo de EJBs e fazer com que sua aplicação dependa desse JAR. Uma das melhores formas é fazer o JAR de EJBs ser provido pelo container pois desse modo voce não criará uma dependencia em tempo de compilação.

Acho que respondi a pergunta. Qualquer coisa, posta ai outras dúvidas.

Marcio_N_Carvalho

gobbo, obrigado pelas dicas.

Concordo com você em relação a não comparar as plataformas, na verdade me preocupo com isso por que os dois produtos correrão em paralelo
em Delphi para Desk e em Java para Web e qualquer manutenção realizada no produto Desk deve ser considerada também na parte WEB. A troca de dlls
que compõem os processos em DELPHI é constante, não quero causar impactos para os usuários da aplicação WEB a cada vez que necessário a manutenção.

Achei interessante essa dica que você deu:
“Uma das melhores formas é fazer o JAR de EJBs ser provido pelo container pois desse modo voce não criará uma dependencia em tempo de compilação”

O processo para seguir essa orientação parece não ser complicado, porém preciso do ponto de partida para colocar isso em prática.
Conhece algum material que possa me passar uma visão?

Desde já agradeço a colaboração.

att,

[Marcio]

gobbo

Primeiro, essa migração será completa? Porque se não for, você poderia integrar seus EJBs usando alguma API que usa JNI.

Com relação ao material, vou dar uma procurada nos meus arquivos a noite.

Mas esse processo é simples. O que você deve fazer é apenas configurar o maven no seu projeto. Gosto da integração entre o maven e o NetBeans mas com o Eclipse é de boa também.
A partir daí, ocorre o seguinte. O maven disponibiliza o JAR em fase de desenvolvimento até pra você ter as dependencias disponíveis para programar. Mas quando você vai dar um package a aplicação que usa o EJB-JAR, este não é incluído na lib/classpath daquele. Você deverá pegar o EJB-JAR e disponibilizar no classpath do container. No Glassfish, tem uma pasta própria pra isso. No tomcat também. Nos outros eu não sei.

Dá uma procurada sobre Provided Dependencies.
http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html

Abraço

Marcio_N_Carvalho

Ok Gobbo, muito obrigado!

Vou estar dando uma pesquisada sob o Maven.
Minhas ferramentas de Trabalho hoje é Netbeans 6.9 / Glassfish 3 (Open Source). As ferramentas utilizadas para aprendizagem foi o Eclipse com TomCat (na Caelum) e é bem diferente trabalhar com EJB, pois no netbeans através da aplicação corporativa ele cria para mim os módulos EJB e WAR, mas se tento criar um outro projeto WAR para acessar esse meu EJB ele não encontra minhas classes e é exatamente o que preciso (Vários Wars compartilhando meu EJB).

Uma outra dúvida que tenho é a seguinte, preciso ter apenas um módulo EJB com todas as minhas classes de regra de negócio ou vários módulos EJB’s (pensando na separação dos processos que tenho na minha aplicação).

Desde já agradeço pelas dicas.

Márcio

gobbo

Aqui na nossa empresa, já passamos por todas essas dúvidas.
Esta é uma excelente abordagem pra engenharia e arquitetura de software.

Boa sorte nas descobertas e nos estudos xD!

Marcio_N_Carvalho

Bom Dia!

Acredito ter achado resposta para minha pergunta:
[color=red] “Uma outra dúvida que tenho é a seguinte, preciso ter apenas um módulo EJB com todas as minhas classes de regra de negócio ou vários módulos EJB’s
(pensando na separação dos processos que tenho na minha aplicação).”
[/color]

Li num tutorial sobre o pattern Session Facade aplicado com EJB, a idéia é fazer com que meus ManagedBeans passem por um EJB (Session Facade) que faz acesso a outros EJBs, dessa forma posso criar meus módulos de EJBs separados e definir um ou mais Facade’s para acessa-los.

Seria essa uma boa alternativa?

Marcio_N_Carvalho

Boa Tarde!

Estou estruturando meu projeto JEE aplicando vários módulos EJBs que são acessados através do EJB (SessionFacade);

Desde então surgiu a necessidade de realizar manutenção em um dos meus EJBs, gostaria de saber se existe uma forma de
fazer isso sem que tenha que recompilar o projeto (já que os arquivos EJBs são módulos separados em .jars).

Preciso realmente utilizar uma ferramenta especifica?
Alguém pode me ajudar?

Marcio_N_Carvalho

Bom Pessoal,

Ainda não consegui resolver o assunto do post, mas assim que resolver posto o resultado aqui.
Se alguem souber de algo que possa me ajudar e puder postar eu agradeço.

vlws.

Marcio_N_Carvalho

Olá,

Acabei encostando a ideia de utilização do Maven pois na época que criei o post havia acabado de migrar para areá de Desenvolvimento e precisava entender outros conceitos antes de estudar o Maven. Hoje, um pouco mais maduro na área (eu acho rs…), resolvi dar uma olhada nessa ferramenta e realmente achei muito bacana o gerenciamento das dependências, realmente é uma ferramenta muito produtiva. Para gerenciamento dos meus repositórios estou utilizando o Artifactory (Achei bem prático).

Já estou fazendo os testes da modularização ideal dos meus EJB’s, ando pesquisando sobre arquitetura de aplicações distribuídas e tudo mais.
Sei que, com o MAVEN consigo resolver essa minha necessidade (Executar de forma prática a substituição dos meus EJB’s), mais pesquisei bastante essa solução e não obtive sucesso.

Vou deixar esmiuçado a estrutura do meu projeto:

1. War

- Minhas páginas / resources;

- ManagedBean Injetando os meus SessionBeans (EJBs Local da Camada de negócio);

2. EJB’s da Camada de negócio - (Varios mósulos EJB’s separados representando as tarefas da minha aplicação);

3. EJB Camada Modelo

- DAOS;

- Entities;

Suponhamos que tive problemas em uma determinada Tarefa e preciso dar manutenção. Faço o ajuste nessa minha Tarefa (que é um dos EJBs da camada de negócio). Como faço para substituir meu EJB antigo pelo EJB que acertei?

Pessoal que conhece de Maven, de uma força ae…

Abraço !!!

Criado 21 de junho de 2011
Ultima resposta 23 de fev. de 2012
Respostas 9
Participantes 2