Spring

4 respostas
L

Srs,

Estou usando Spring e tbm o suporte a Remoting do mesmo para publicação dos serviços RMI.

Estou tendo a seguinte situação e gostaria da ajuda/opinião de vcs
É o seguinte: Tenho um projeto java onde defino um servico generico para operacoes de CRUD no BD.
Ta tudo beleza, sendo o serviço exportado via RMI.
Agora preciso criar um novo projeto, o qual tera seus proprios servicos especializados mas preciso
também desse servico generico. Eu então gero um .jar, por exemplo, mycore.jar e adiciono nesse novo
projeto.
Nesse cenário como que eu conseguiria usar os servicos (RMI) especializados dessa aplicação e tbm
contar com o servico generico definido em mycore.jar ?
O que tentei foi definir o servico generico no applicationContext da aplicacao, tomando o cuidado claro,
de setar o caminha correto (em relação aos pacotes exemplo “coreserver.model.service.ServicoGenerico”)
enquanto que na aplicação fica “app.model.service.ServicoEspecializado” por exemplo.
Nesse teste eu recebo o erro do spring dizendo que não consegue localizar o bean “servicoGenerico”.

Alguma solução para o meu problema?

No meu ponto de vista, a melhor solução seria eu ao startar a “aplicação especializada” e logo em seguida
a “aplicacao generica” ser startada tbm, assim depois de registrar os servicos especializados seriam registrados
os servicos genericos tbm. Sendo assim eu teria que ter um applicationContext apenas ou um para cada aplicação?

Resumindo, não quero ter que ficar definindo esse serviço generico em cada aplicacao que for desenvolver e sim reaproveita-lo atraves desse .jar

4 Respostas

RaulCarlin

Um jeito simples seria você importar o context(XML) da app genérica na sua app especializada, assim, quando você iniciar o ApplicationContext ele lê numa boa os outros beans…

Eu não tenho um exemplo aqui em mãos, mas é fácil, dá uma olhada na documentação…

L

Funcionou… Vlw.

So uma coisa, tanto o context da app generica quanto o da app especializada possuem sessionFactory, jdbc, etc… com isso o Spring cria duas SessionFactory ou apenas uma mesmo?

L

Raul

Hoje olhando com mais calma e menos sono percebi que de repente eu não tenha feito um “include”.
O que eu fiz foi o seguinte: Na aplicação, na hora de carregar o applicationContext eu tbm carreguei o applicationContext da aplicacao “generica”… segue:

appContext = new FileSystemXmlApplicationContext(
                            new String[]
                                      {"D:/projetos/AppEspecifica/applicationContext.xml",
                                        "D:/projetos/AppGenerica/genericApplicationContext.xml"});

Isso ta errado? Pelo menos rodou sem erros…
De repente o melhor seria um “include” neh?
Procurei exemplo de codigo e nao encontrei… se tiver algum exemplo que puder me mandar agradeço.

RaulCarlin

Opa, demorei pra ler, mals…

<import resource="classpath:other-context.xml" />

Eu tenho vários desse no meu(exemplo) server-context.xml, onde cada um corresponde à uma config específica(no seu caso, os genéricos), e também quando você faz isto você pode referenciar aos beans dos outros XML pelo principal que não dá erro, resumindo, é como fazer um XML gigante contendo vários pequenos saca…

Criado 13 de março de 2008
Ultima resposta 27 de mar. de 2008
Respostas 4
Participantes 2