Divisão de aplicação com frameworks em módulos

13 respostas
F

Olá Pessoal, aki na empresa temos uma aplicação web construida em java, com struts e hibernate e agora precisamos dividí-la em módulos, tipo, modulo de noticias, loja/vitrine, carrinho, etc.
O problema é q estamos encontrando dificuldades em fazer as divisões dos arquivos struts e hibernate.
Alguem já passou por uma experiência parecida e pode me dar umas dicas?
Li sobre algumas ferramentas como o XDoclet que fazem a divisão do código automático, mas seria para o inicio da programação e precisamos para “dividir” uma aplicação pronta.
já criamos arquivos separados de struts para teste e o struts-config consegue vê-los, porém quando fazemos uma chamada a um ‘path’ dentro do ‘struts filho’ a aplicação não interpreta, como se ela não encontrasse o arquivo a ser carregado.
Estamos tentando com o SwitchAction, mas não sabemos bem como fazer.

Se alguem tiver alguma sugestão eu agradeceria.

Obrigada.

13 Respostas

C

Você quer dividir o sistema em módulos (componentes ou jars diferentes) ou deseja apenas separar os arquivos de configurações (XMLs)?

F

Oi, preciso ter tudo separado em jars.
Ter um jar que englobe arquivos hibernate, struts, classes em um unico jar que vai ser chamado por um modulo principal, o qual vai habilitar os modulos que interessam para cada cliente.

C

Uma boa seria a utilização do Maven.

F

Já está sendo cogitada a utilização do Maven 2, mas só contempleria estrutura.
Primeiro eu preciso comunicar meus arquivos struts, o config e o que gerencia meu ‘modulo teste’.
A aplicação ainda não está dividida e só será após todas as comunicações dos arquivos struts e hibernate estarem funcionado na atual hierarquia web padrão.
Ou seja, foi pega a aplicação web e criado um outro arquivo struts para o módulo (struts-noticias.xml), neste foi colocado todas as tags e declarações pertencentes ao módulo e do struts-config.xml foi retirado. Foi feito no web.xml o init-param para o struts-noticias.xml. Contudo, quando clico no menu da aplicação para fazer a chamada do path que se encontra no struts-noticias.xml é como se ele não fosse visto, pois ele dá o seguinte erro: HTTP Status 404 - Invalid path /admin/marketing/noticia was requested. Se eu inicializar este struts no web.xml dentro da mesma tag do config, separado por vírgula ele funciona, porém não é uma boa prática de programação.

Bem, espero ter exclarecido um pouco mais da situação e que vc possa me ajudar.

Obrigada.

C

Você está usando qual versão do Struts?

E por que não é uma boa prática de programação configurar arquivos XMLs no web.xml separados por vírgula? Onde você leu sobre isso?

F

Na própria documentação da apache onde é recomendado que se deixe configurado somente um arquivo e não caracterizaria a modularização que se quer aplicar.
A versão do Struts que estamos usando é a 2.1.4.

C

No Struts2 você pode ter um arquivo de configuração padrão e separar os arquivos de configurações em vários arquivos, da forma que você deseja. Já tentou fazer assim?

F

Sim, isso q estamos tentando, porém faltam algumas configurações para os arquivos filhos serem chamados.
Você pode me dar algum exemplo de arquivos de configuração chamando os demais?

C

Eu fiz um post sobre o Struts2 há um tempo e utilizei essa forma de separação. Dê uma olhada.

F

Teu post é bem interessante, mas no meu projeto aki não consegui replicar bem certo o q vc propôs lá.
Eu retirei a chamada do arquivo filho do web.xml e no struts-config.xml eu inseri as seguintes linhas:

<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />

<include file="moduloStruts/struts-noticias.xml"/>

Minha pasta moduloStruts q contém o arquivo filho está no mesmo nivel do meu arquivo struts-config.xml, e ele está dando erro de servlet, como se não estivesse reconhecendo o comando include ou o path passado.

Aproveitando a deixa, vc sabe como funciona o switchMod e o SwitchAction? Como eu configuro os parâmetros para ele?

C

Infelizmente não estudei o Struts2 a fundo, acho que seria melhor você buscar essa resposta no site do framework.

F

Ok. Mesmo assim valeu as dicas.
Dando certo aki eu posto a solução que utilizamos.

Obrigada.

O

Bom dia,

o struts já está modularizado com o uso do switchAction.
Meu obstáculo agora tá sendo fazer a aplicação ver os arquivos dentro do jar, como minha biblioteca.
O caso é que eu já tenho uma aplicação toda montada, mas a sua manutenção e correção de erros é muito “cansativa” pela amarração dos arquivos.
O que eu tentei fazer foi pegar todos os arquivos comuns a um contexto real e separá-los em um jar, deixando os arquivos de configuração e de uso comum para aplicação pra fora.
Mas não tá dando muito certo, eu precisava que estes módulos ficassem independentes, pois imagina como farei pra dar manutenção nisso. Descompactar o jar do módulo, aí não sei se este vai rodar descompactado já que a estrutura interna do jar é diferente da aplicação, aí desconsiderando isso, compactar de novo testar, se não funcionar volto a descompactar…loop.
Se tiver alguma idéia de como modularizar isso que funcione, me oriente. Abraço!

Criado 6 de janeiro de 2009
Ultima resposta 14 de jan. de 2009
Respostas 13
Participantes 3