<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Últimas mensagens do tópico "EJBs acessando componentes Spring"]]></title>
		<link>http://www.guj.com.br/posts/list/12.java</link>
		<description><![CDATA[Últimas mensagens enviadas no tópico "EJBs acessando componentes Spring"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>EJBs acessando componentes Spring</title>
				<description><![CDATA[ Oi pessoal,<br /> <br /> Estamos mudando nossa plataforma de desenvolvimento de Spring + framework caseiro para JEE (ainda não sabemos se será o 5 ou 6). As aplicações existentes não serão migradas, mas vários componentes (implementados com Spring), que são utilizados por várias aplicações, terão que ser acessados nesta nova plataforma. Estamos pensando em como seria este acesso e algumas alternativas seriam:<br /> <br /> 1. Duplicar o código dos componentes, deixando quieto o que está em Spring e implementando tudo novamente em EJB. No curtíssimo prazo isso seria o mais rápido, mas é fácil descartar esta alternativa já que código duplicado somente em ultimo caso.<br /> <br /> 2. Importar todo o código (através de JARs) dos componentes para dentro da aplicação e acessar localmente. Isso até que seria simples, mas junto com os JARs dos componentes eu teria que trazer toda a tralha de dependências junto, incluindo Spring e o framework caseiro.<br /> <br /> 3. Expor os componentes como web-services SOAP. Essa abordagem teria a grande vantagem de deixar o serviço independente de plataforma, mas, por mais que seja fácil expor um pojo como web-service, daria muito trabalho mapear as entidades trocadas em um xml schema, mesmo usando JAXB ou algo similar. As entidades são bem complexas e se contentar com o mapeamento default do JAXB não ficaria legal.<br /> <br /> 4. Expor os componentes como web-services rest. Teria a vantagem de economizar muito em mapeamento, mas transformar a api dos componentes para seguir uma linha restful exigiria uma reimplementação muito grande.<br /> <br /> 5. Implementar um componente EJB de fachada, que importaria cada componentes (pelo JAR) localmente e exporia o serviço de maneira transparente. Esse EJB de fachada seria então acessado remotamente pelas aplicações da nova plataforma. Seria um saco implementar um componente só para esse intercâmbio mas como seria só uma fachada, não teria muito código. O Spring tem inclusive uma forma, pelo SpringBeanAutowiringInterceptor, de injetar beans Spring em EJBs<br /> <br /> 6. Expor os beans Spring por RMI, usando o RmiProxyFactoryBean, e importá-lo nos EJBs com @Resource. Esta acho que seria a melhor alternativa, mas nunca fiz e nem vi nada parecido.<br /> <br /> Alguém já precisou fazer algo parecido e teria alguma dica?<br /> <br /> valeu!<br /> Fabrício Lemos<br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197114/988754/ejbs-acessando-componentes-spring
</guid>
				<link>http://www.guj.com.br/prepost/197114/988754/ejbs-acessando-componentes-spring
</link>
				<pubDate><![CDATA[Tue, 2 Feb 2010 14:56:22]]> GMT</pubDate>
				<author><![CDATA[ fabricio.lemos]]></author>
			</item>
			<item>
				<title>Re:EJBs acessando componentes Spring</title>
				<description><![CDATA[ Suas opções foram muito bem pensadas, creio que você fez uma boa pesquisa.<br /> <br /> Penso que o ideal mesmo é, já que você quer usar JEE, é quando puder reescrever tudo usando EJB e fazer o que já ficou com Spring acessar esses EJBs como remotos. É muito simples e já fiz isso.<br /> <br /> Mas por enquando que você tem tudo no Spring e quer que os EJBs acessem seus beans do spring você pode usar um interceptor no EJB que faz a injeção dos beans do Spring: @Interceptors(SpringBeanAutowiringInterceptor.class).<br /> <br /> Porém creio que isso só funcione se você tem o contexto do spring como local. Nunca usei, apenas lí sobre isso nos docs do Spring. Uma solução caso você tenha os EJBs e contexto do Spring em local separado é você usar via webservice como você citou, porém haverá um overhead de fazer o malshal e unmarshal.<br /> <br /> Abraços]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197114/988794/reejbs-acessando-componentes-spring
</guid>
				<link>http://www.guj.com.br/prepost/197114/988794/reejbs-acessando-componentes-spring
</link>
				<pubDate><![CDATA[Tue, 2 Feb 2010 15:29:14]]> GMT</pubDate>
				<author><![CDATA[ garcia-jj]]></author>
			</item>
			<item>
				<title>EJBs acessando componentes Spring</title>
				<description><![CDATA[ [quote=fabricio.lemos]Oi pessoal,<br /> <br /> Estamos mudando nossa plataforma de desenvolvimento de Spring + framework caseiro para JEE (ainda não sabemos se será o 5 ou 6).<br /> [/quote]<br /> <br /> Isto não significa nada. Spring tb funciona em JEE. Suponho que vc esteja pensando em EJB ( que é diferente de jee)<br /> <br /> [quote]<br /> As aplicações existentes não serão migradas, mas vários componentes (implementados com Spring), que são utilizados por várias aplicações, terão que ser acessados nesta nova plataforma.<br /> [/quote]<br /> <br /> Componentes Spring são POJO não vejo onde está o problema. Mesmo que vc tenha usado @Autowired e coisas do tipo, isso é facilmente removido e substituido por xml, deixando o POJO intacto.<br /> <br /> [quote]<br />  Estamos pensando em como seria este acesso e algumas alternativas seriam:<br /> <br /> 1. Duplicar o código dos componentes,<br /> [/quote]<br /> <br /> sempre má ideia.<br /> <br /> [quote]<br /> 2. Importar todo o código (através de JARs) dos componentes para dentro da aplicação e acessar localmente. Isso até que seria simples, mas junto com os JARs dos componentes eu teria que trazer toda a tralha de dependências junto, incluindo Spring e o framework caseiro.<br /> [/quote]<br /> <br /> não se remover as anotações primeiro.<br /> <br /> [quote]<br /> 3. Expor os componentes como web-services SOAP. Essa abordagem teria a grande vantagem de deixar o serviço independente de plataforma, mas, por mais que seja fácil expor um pojo como web-service, daria muito trabalho mapear as entidades trocadas em um xml schema, mesmo usando JAXB ou algo similar. As entidades são bem complexas e se contentar com o mapeamento default do JAXB não ficaria legal.<br /> <br /> 4. Expor os componentes como web-services rest. Teria a vantagem de economizar muito em mapeamento, mas transformar a api dos componentes para seguir uma linha restful exigiria uma reimplementação muito grande.<br /> [/quote]<br /> <br /> Fora que não estaria substituindo spring por jee e sim tendo dois sistemas. Não é boa ideia. webservices não é para isto.<br /> <br /> [quote]<br /> 5. Implementar um componente EJB de fachada, que importaria cada componentes (pelo JAR) localmente e exporia o serviço de maneira transparente. Esse EJB de fachada seria então acessado remotamente pelas aplicações da nova plataforma. <br /> [/quote]<br /> <br /> Usar EJB para acesso remoto é asneira. Masi facil simplesmente expor os POJO  spring como webservices usando o proprio spring.<br /> <br /> [quote]<br /> Seria um saco implementar um componente só para esse intercâmbio mas como seria só uma fachada, não teria muito código. O Spring tem inclusive uma forma, pelo SpringBeanAutowiringInterceptor, de injetar beans Spring em EJBs<br /> [/quote]<br /> <br /> Se vc injetar coisas usando o spring , vc não está se livrando do spring e migrando para o EJB.<br /> <br /> [quote]<br /> 6. Expor os beans Spring por RMI, usando o RmiProxyFactoryBean, e importá-lo nos EJBs com @Resource. Esta acho que seria a melhor alternativa, mas nunca fiz e nem vi nada parecido.<br /> [/quote]<br /> <br /> RMI é pessima ideia. mas facil expor o contexto spring com um recurso no JNDI ( não precisa de RMI) e usálo  como um service locator ou usar os método create() do ejb para fazer uma auto-injeção<br /> <br /> [quote]<br /> Alguém já precisou fazer algo parecido e teria alguma dica?<br /> [/quote]<br /> <br /> Tentar usar EJB  é péssima ideia. Vc já tem uma estrutura em spring, vc [i]não precisa[/i] de ejb. Spring roda tranquilo em JEE, sem EJB.<br /> <br /> A forma mais limpa é tirar a dependencia do spring dos seus POJO e usá-los puros no EJB.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197114/988835/ejbs-acessando-componentes-spring
</guid>
				<link>http://www.guj.com.br/prepost/197114/988835/ejbs-acessando-componentes-spring
</link>
				<pubDate><![CDATA[Tue, 2 Feb 2010 16:14:37]]> GMT</pubDate>
				<author><![CDATA[ sergiotaborda]]></author>
			</item>
			<item>
				<title>Re:EJBs acessando componentes Spring</title>
				<description><![CDATA[ [quote=garcia-jj]<br /> Porém creio que isso só funcione se você tem o contexto do spring como local. Nunca usei, apenas lí sobre isso nos docs do Spring. Uma solução caso você tenha os EJBs e contexto do Spring em local separado é você usar via webservice como você citou, porém haverá um overhead de fazer o malshal e unmarshal.<br /> Abraços[/quote]<br /> <br /> É, os exemplos que vi foran com contexto local mesmo, o que não é meu caso. De qualquer forma vou investigar mais um pouco. Sobre o overhead do marshal e unmarshal, além do possível gargalo que isso pode ocasionar, eu ainda teria que fazer o mapeamento entidade-xml, que mesmo com JAXB, ou solução parecida, pode dar muito trabalho para se chegar a um schema legal. Minhas entidades são bem complexas.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197114/988872/reejbs-acessando-componentes-spring
</guid>
				<link>http://www.guj.com.br/prepost/197114/988872/reejbs-acessando-componentes-spring
</link>
				<pubDate><![CDATA[Tue, 2 Feb 2010 16:53:56]]> GMT</pubDate>
				<author><![CDATA[ fabricio.lemos]]></author>
			</item>
			<item>
				<title>EJBs acessando componentes Spring</title>
				<description><![CDATA[ [quote]Tentar usar EJB  é péssima ideia. Vc já tem uma estrutura em spring, vc [i]não precisa[/i] de ejb. Spring roda tranquilo em JEE, sem EJB.[/quote]<br /> <br /> A nossa estrutura com Spring está bem precária e totalmente legada. Fizemos uma avaliação e decidimos usar EJB e JBoss Seam nas aplicações novas. Esta decisão até pode ser revista, mas não quero transformar a thread em uma discussão EJB vs Spring e sim como integrar meu legado com a nova plataforma.<br /> <br /> [quote]A forma mais limpa é tirar a dependencia do spring dos seus POJO e usá-los puros no EJB.[/quote]<br /> <br /> O legado não depende somente do Spring. Tem o framework caseiro e legado e importar esse componente para dentro do projeto significaria trazer muito lixo. Muitos JARs que estão no classpath não sei nem pq estão sendo usados e mudar a versão de qualquer coisa (do hibernate, por exemplo) sempre é um suplício. Por isso não acho muito legal a alternativa 2]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197114/988880/ejbs-acessando-componentes-spring
</guid>
				<link>http://www.guj.com.br/prepost/197114/988880/ejbs-acessando-componentes-spring
</link>
				<pubDate><![CDATA[Tue, 2 Feb 2010 17:03:32]]> GMT</pubDate>
				<author><![CDATA[ fabricio.lemos]]></author>
			</item>
			<item>
				<title>Re:EJBs acessando componentes Spring</title>
				<description><![CDATA[ Esse seu framework caseiro faz o que? Envolve regras de negócio ou é apenas um controller web?<br /> <br /> Se for a segunda opção não será problema usar full-ejb, pois você pode usar o controller acessando EJB remoto ou local do seu módulo EJB.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197114/988902/reejbs-acessando-componentes-spring
</guid>
				<link>http://www.guj.com.br/prepost/197114/988902/reejbs-acessando-componentes-spring
</link>
				<pubDate><![CDATA[Tue, 2 Feb 2010 17:31:23]]> GMT</pubDate>
				<author><![CDATA[ garcia-jj]]></author>
			</item>
			<item>
				<title>Re:EJBs acessando componentes Spring</title>
				<description><![CDATA[ [quote=garcia-jj]Esse seu framework caseiro faz o que? Envolve regras de negócio ou é apenas um controller web?[/quote]<br /> <br /> Ele envolve tudo, desde a persistência até a camada de apresentação.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197114/989192/reejbs-acessando-componentes-spring
</guid>
				<link>http://www.guj.com.br/prepost/197114/989192/reejbs-acessando-componentes-spring
</link>
				<pubDate><![CDATA[Wed, 3 Feb 2010 09:02:03]]> GMT</pubDate>
				<author><![CDATA[ fabricio.lemos]]></author>
			</item>
			<item>
				<title>Re:EJBs acessando componentes Spring</title>
				<description><![CDATA[ [quote=fabricio.lemos][quote=garcia-jj]Esse seu framework caseiro faz o que? Envolve regras de negócio ou é apenas um controller web?[/quote]<br /> <br /> Ele envolve tudo, desde a persistência até a camada de apresentação.[/quote]<br /> <br /> então vc não precisa migrar. Vc precisa fazer o sistema do zero usando tecnologias diferentes. Mas amarrar-se ao JBoss Seams é pura asneira. <br /> Vc vai sair da frigideira para cair no fogo. <br /> <br /> Comece por limpar o que tem, aumente a qualidade. Vai ver que não precisa migrar nem para ejb nem para seams. <br /> Por exemplo, comece por limpar esse monte de dependências. Use o maven se for necessário.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197114/989240/reejbs-acessando-componentes-spring
</guid>
				<link>http://www.guj.com.br/prepost/197114/989240/reejbs-acessando-componentes-spring
</link>
				<pubDate><![CDATA[Wed, 3 Feb 2010 09:45:01]]> GMT</pubDate>
				<author><![CDATA[ sergiotaborda]]></author>
			</item>
			<item>
				<title>Re:EJBs acessando componentes Spring</title>
				<description><![CDATA[ [quote]então vc não precisa migrar. Vc precisa fazer o sistema do zero usando tecnologias diferentes. Mas amarrar-se ao JBoss Seams é pura asneira. <br /> Vc vai sair da frigideira para cair no fogo. [/quote]<br /> <br /> Eu não vou migrar nada. O que está feito no framework caseiro vai continuar nele. Somente as coisas [b]novas[/b] é que vão ser feitas em uma nova plataforma. E como o framework está muito ruim, amarrado e muito difícil de evoluir é melhor, para as coisas [b]novas[/b], abandaná-lo de vez. Não vejo motivo para continuar fazendo sistemas novos em um framework legado. ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197114/989263/reejbs-acessando-componentes-spring
</guid>
				<link>http://www.guj.com.br/prepost/197114/989263/reejbs-acessando-componentes-spring
</link>
				<pubDate><![CDATA[Wed, 3 Feb 2010 10:03:57]]> GMT</pubDate>
				<author><![CDATA[ fabricio.lemos]]></author>
			</item>
			<item>
				<title>Re:EJBs acessando componentes Spring</title>
				<description><![CDATA[ Se vocês estão decididos a usar o Seam em novos componentes mas sem perder o conhecimento no legado com Spring, isso pode ser feito sem problemas.<br /> <br /> É possível injetar Spring Beans em Seam Components e vice-versa, você não perde nada: <a class="snap_shots" href="http://docs.jboss.org/seam/2.2.0.GA/reference/en-US/html/spring.html" target="_blank" rel="nofollow">http://docs.jboss.org/seam/2.2.0.GA/reference/en-US/html/spring.html</a>]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197114/992344/reejbs-acessando-componentes-spring
</guid>
				<link>http://www.guj.com.br/prepost/197114/992344/reejbs-acessando-componentes-spring
</link>
				<pubDate><![CDATA[Tue, 9 Feb 2010 00:47:26]]> GMT</pubDate>
				<author><![CDATA[ Alessandro Lazarotti]]></author>
			</item>
			<item>
				<title>Re:EJBs acessando componentes Spring</title>
				<description><![CDATA[ Mas para isso eu teria que importar toda a tralha antiga para dentro dos projetos novos (opção 2) e estava querendo evitar fazer isso. <br /> <br /> Como não encontrei nenhum furo, pelo menos não conceitualmente, meu primeiro teste vai ser o acesso por RMI.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197114/992365/reejbs-acessando-componentes-spring
</guid>
				<link>http://www.guj.com.br/prepost/197114/992365/reejbs-acessando-componentes-spring
</link>
				<pubDate><![CDATA[Tue, 9 Feb 2010 08:07:09]]> GMT</pubDate>
				<author><![CDATA[ fabricio.lemos]]></author>
			</item>
			<item>
				<title>Re:EJBs acessando componentes Spring</title>
				<description><![CDATA[ O seu maior furo, é "acesso por RMI".<br /> Dependendo da quantidade de chamadas remotas será um gargalo. É "tão complicado" assim importar os jars e as configurações que "já" estão funcionando? Não estou conseguindo achar o problema em fazer isso.<br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197114/992545/reejbs-acessando-componentes-spring
</guid>
				<link>http://www.guj.com.br/prepost/197114/992545/reejbs-acessando-componentes-spring
</link>
				<pubDate><![CDATA[Tue, 9 Feb 2010 11:17:18]]> GMT</pubDate>
				<author><![CDATA[ Alessandro Lazarotti]]></author>
			</item>
			<item>
				<title>Re:EJBs acessando componentes Spring</title>
				<description><![CDATA[ [quote=sergiotaborda] <br /> Mas amarrar-se ao JBoss Seams é pura asneira. <br /> Vc vai sair da frigideira para cair no fogo. <br /> [/quote]<br /> <br /> Achismo? Vc tem algum trauma com o Seam? Conta pra gente?<br /> <br /> Não é "Seams". É "Seam". <img src="http://www.guj.com.br/images/smilies/8a80c6485cd926be453217d59a84a888.gif" border="0">]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197114/992937/reejbs-acessando-componentes-spring
</guid>
				<link>http://www.guj.com.br/prepost/197114/992937/reejbs-acessando-componentes-spring
</link>
				<pubDate><![CDATA[Tue, 9 Feb 2010 20:15:05]]> GMT</pubDate>
				<author><![CDATA[ andre_salvati]]></author>
			</item>
			<item>
				<title>Re:EJBs acessando componentes Spring</title>
				<description><![CDATA[ [quote=andre_salvati][quote=sergiotaborda] <br /> Mas amarrar-se ao JBoss Seams é pura asneira. <br /> Vc vai sair da frigideira para cair no fogo. <br /> [/quote]<br /> <br /> Achismo? Vc tem algum trauma com o Seam? Conta pra gente?<br /> <br /> Não é "Seams". É "Seam". <img src="http://www.guj.com.br/images/smilies/8a80c6485cd926be453217d59a84a888.gif" border="0">[/quote]<br /> <br /> Acho que o que ele quis dizer é que não se sai de um framework pra acabar amarrado em outro. (E eu concordo, é sempre péssimo ficar amarrado a algum deles. Por esses e outros motivos o pessoal desenvolveu a JPA, por exemplo.)<br /> <br /> Dito isso, não tenho nada contra o JBoss Seam, acho um framework realmente fantástico, mas que deixa você amarrado a ele (eu coloquei em um tópico aqui no GUJ, não lembro o nome, os prós e contras do Seam).<br /> <br /> []´s]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197114/993890/reejbs-acessando-componentes-spring
</guid>
				<link>http://www.guj.com.br/prepost/197114/993890/reejbs-acessando-componentes-spring
</link>
				<pubDate><![CDATA[Thu, 11 Feb 2010 10:03:45]]> GMT</pubDate>
				<author><![CDATA[ asaudate]]></author>
			</item>
			<item>
				<title>Re:EJBs acessando componentes Spring</title>
				<description><![CDATA[ [quote=asaudate]<br /> Dito isso, não tenho nada contra o JBoss Seam, acho um framework realmente fantástico, mas que deixa você amarrado a ele ...[/quote]<br /> <br /> Sem dúvida. Mas vc ficaria amarrado de qualquer forma com outros frameworks. <br /> <br /> Cabe a vc escolher o mais conveniente, o que resolve seus problemas.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197114/993907/reejbs-acessando-componentes-spring
</guid>
				<link>http://www.guj.com.br/prepost/197114/993907/reejbs-acessando-componentes-spring
</link>
				<pubDate><![CDATA[Thu, 11 Feb 2010 10:10:47]]> GMT</pubDate>
				<author><![CDATA[ andre_salvati]]></author>
			</item>
			<item>
				<title>Re:EJBs acessando componentes Spring</title>
				<description><![CDATA[ [quote=Alessandro Lazarotti]O seu maior furo, é "acesso por RMI".<br /> Dependendo da quantidade de chamadas remotas será um gargalo. É "tão complicado" assim importar os jars e as configurações que "já" estão funcionando? Não estou conseguindo achar o problema em fazer isso.<br /> [/quote]<br /> <br /> Quero evitar importar para não começar a bagunçar o classpath. Algum tempo atrás, por exemplo, tentei atualizar a versão do hibernate do legado, passando da versão 3.x para a versão 3.x+1, deu maior problema e algumas coisas deixaram de funcionar, se a memória não me falha foi algo relacionado ao cache. Não foi tão complicado ajeitar para um componente, mas como todos compartilhavam do mesmo classpath em tempo de execução, seria um esforço muito grande e acabei tendo que voltar atrás, principalmente pq o legado não possui qualquer tipo de teste automatizado. Daí pensei isolar todos esses componentes em serviços, ao invés de importar para dentro da minha aplicação.<br /> <br /> Também não sei as consequências de se ter dois containners (spring e ejb) rodando na mesma aplicação.<br /> <br /> Mas de qualquer forma vou fazer protótipos com sua sugestão e averiguar as escolhas depois de ter implementado algo.<br /> <br /> Em tempo, JEE6 acabou sendo nossa principal aposta (ainda temos que fazer alguns spikes). Tivemos muitas dores de cabeça pra colocar o Seam rodando no Glassfish e depois vimos que não valia a pena. Conseguimos uma janela de tempo maior e resolvemos investigar o JEE 6.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197114/994504/reejbs-acessando-componentes-spring
</guid>
				<link>http://www.guj.com.br/prepost/197114/994504/reejbs-acessando-componentes-spring
</link>
				<pubDate><![CDATA[Thu, 11 Feb 2010 17:58:26]]> GMT</pubDate>
				<author><![CDATA[ fabricio.lemos]]></author>
			</item>
	</channel>
</rss>
