EJB coisa de outro planeta

Quando eu estava iniciando em Java eu nem sabia o que era EJB mas sempre a frase nas vagas “ejb - com experiencia” mas eu, um simples mortal não ganhei experiência em ejb no útero e gostaria de saber o pq da complicação de iniciar em uma empresa que tenha EJB

Todos tem que vir do berço com experiência em ejb 2.1 pq hj o ejb 3 esta fraco no mercado

Não concordo que EJB3 esteja fraco no mercado.

Talvez vc tenha pego os anuncios num dia onde estejam contratando mais gente pra lidar com legado do que novos desenvolvimentos.

Ao menos até onde sei, não há ninguém começando projetos com EJB 2.1 (ao menos ninguém que conheça java, talvez um ‘gerente’ sem conhecimento técnico algum)

Quanto ao ponto da experiência isso é normal, quem entra pra aprender é Trainee, o resto tem que chegar sabendo (sim, sou recrutador tb)

Abs

Provavelmente é aplicação antiga, ninguém é louco de iniciar hoje algo com EJB 2.1, sem contar que a maioria que usaram EJB 2, utilizou totalmente equivocado, acabaram por ter que implementar vários padrões e acrescentar complexidade para consertar o fato do mal uso do EJB, usavam num contexto que não era apropriado.

O EJB 3 não é uma evolução do EJB 2, pra quem conhece, sabe que EJB 3 é um novo produto que apenas herdou o nome do anterior. Hoje não vejo muito sentido de usar EJB 3 se não for local. Atualmente num projeto distribuído temos trabalho com excelência utilizando o Spring.

[]'s Hewerton Crisóstomo

Acredito quando se trata de uma vaga para um novo desenvolvimento em EJB, a necessidade de alguém com experiência seja fundamental, mas quando se trata de alguma manutenção não, alguém com experiência de uns 3 anos em java resolve, talvez pedir conhecimento teórico já basta

Eu pelo menos nunca ví um tramplo de verdade aqui em SP que esteja utilizando EJB3. Mesmo!

Agora, EJB2 eu já ví a rodo e já trabalhei em sistemas assim.

Acredito que existam empresas utilizando EJB3, apesar de desconhecer hehe.

Tu utiliza no teu trampo?! Se sim, como está sendo a experiência?

nos trabalhamos com ejb 3.0 aqui, eu nao uso para fazer chamadas remotas ou coisa do tipo, mas sim para controle de transacao, webservices e etc.

Chamadas remotas mesmo, acho que tem 2 pessoas que utilizam em algum lado mto obscuro do sistema ehehheheh

abrasssss

[quote=Javabuntu]Provavelmente é aplicação antiga, ninguém é louco de iniciar hoje algo com EJB 2.1, sem contar que a maioria que usaram EJB 2, utilizou totalmente equivocado, acabaram por ter que implementar vários padrões e acrescentar complexidade para consertar o fato do mal uso do EJB, usavam num contexto que não era apropriado.

O EJB 3 não é uma evolução do EJB 2, pra quem conhece, sabe que EJB 3 é um novo produto que apenas herdou o nome do anterior. Hoje não vejo muito sentido de usar EJB 3 se não for local. Atualmente num projeto distribuído temos trabalho com excelência utilizando o Spring.

[]'s Hewerton Crisóstomo [/quote]

Depende,

Ano passado começamos um novo projeto aqui e tivemos que utilizar o EJB 2.1 porque o WebSphere (versao 6.1) nao suportava EJB 3 ainda.

Trabalhei em um projeto ate abril deste ano que usa EJB3 e não tive do que reclamar.
Realmente, hoje ainda vejo diversos projetos que utilizam EJB2 e que não pretendem migrar para EJB3 tão cedo.

[quote=pdioniziofilho][quote=Javabuntu]Provavelmente é aplicação antiga, ninguém é louco de iniciar hoje algo com EJB 2.1, sem contar que a maioria que usaram EJB 2, utilizou totalmente equivocado, acabaram por ter que implementar vários padrões e acrescentar complexidade para consertar o fato do mal uso do EJB, usavam num contexto que não era apropriado.

O EJB 3 não é uma evolução do EJB 2, pra quem conhece, sabe que EJB 3 é um novo produto que apenas herdou o nome do anterior. Hoje não vejo muito sentido de usar EJB 3 se não for local. Atualmente num projeto distribuído temos trabalho com excelência utilizando o Spring.

[]'s Hewerton Crisóstomo [/quote]

Depende,

Ano passado começamos um novo projeto aqui e tivemos que utilizar o EJB 2.1 porque o WebSphere (versao 6.1) nao suportava EJB 3 ainda.[/quote]

Funciona EJB 3 no Websphere sim senhor. Procure pelos Feature Packs desta versão, que elas habilitam o websphere para o uso desta versão de EJB

[quote=pdioniziofilho][quote=Javabuntu]Provavelmente é aplicação antiga, ninguém é louco de iniciar hoje algo com EJB 2.1, sem contar que a maioria que usaram EJB 2, utilizou totalmente equivocado, acabaram por ter que implementar vários padrões e acrescentar complexidade para consertar o fato do mal uso do EJB, usavam num contexto que não era apropriado.

O EJB 3 não é uma evolução do EJB 2, pra quem conhece, sabe que EJB 3 é um novo produto que apenas herdou o nome do anterior. Hoje não vejo muito sentido de usar EJB 3 se não for local. Atualmente num projeto distribuído temos trabalho com excelência utilizando o Spring.

[]'s Hewerton Crisóstomo [/quote]

Depende,

Ano passado começamos um novo projeto aqui e tivemos que utilizar o EJB 2.1 porque o WebSphere (versao 6.1) nao suportava EJB 3 ainda.[/quote]

Entre usar EJB 2.1 e não usar nada e fazer tudo na unha eu fico com a segunda opção. NÃO EXISTE NEM NUNCA EXISTIU RAZÃO NENHUMA PARA SE USAR EJB 2.1. Os imbecis que inventaram o EJB 1.0 ao 2.1 deveriam ser fuzilados pelo grande dano que causaram a plataforma java.

Sem falar que com tantos servidores bons (e open source) por aí, foram pegar logo o Websphere que é fechado, caro e ruim?

[quote=victorwss]Entre usar EJB 2.1 e não usar nada e fazer tudo na unha eu fico com a segunda opção. NÃO EXISTE NEM NUNCA EXISTIU RAZÃO NENHUMA PARA SE USAR EJB 2.1. Os imbecis que inventaram o EJB 1.0 ao 2.1 deveriam ser fuzilados pelo grande dano que causaram a plataforma java.
[/quote]

Por que tu diz isso? Quer dizer que razão pra EJB 3 existe e não pra EJB 2?

Eu vj uma que continua em Java, desde junho cada vez maior… apinfo no dia 01/09/2009, mandei 3 e no dia 02 mandei 2 curriculos e a um ano em dias fracos eu mandava 8, 9 cv.

Nos retornos sempre é algo sobre manutenção e desenvolvimento, acho que por esse motivo o 2.1

  • Nenhum Sadan Java precisa falar que Java esta em alta… Lembram o porta-voz do Iraque “Nenhum americano que entrou no Iraque esta vivo” dois dias depois a capital do bigode é tomada

[quote=Leozin][quote=victorwss]Entre usar EJB 2.1 e não usar nada e fazer tudo na unha eu fico com a segunda opção. NÃO EXISTE NEM NUNCA EXISTIU RAZÃO NENHUMA PARA SE USAR EJB 2.1. Os imbecis que inventaram o EJB 1.0 ao 2.1 deveriam ser fuzilados pelo grande dano que causaram a plataforma java.
[/quote]

Por que tu diz isso? Quer dizer que razão pra EJB 3 existe e não pra EJB 2?[/quote]

O EJB 3 é algo significativamente diferente do EJB 2. O uso de JPA em lugar de CMP e BMP é ótimo, afinal de contas CMP não serve para nada mesmo (é preferível fazer DAOs na mão, ou seja BMP) e BMP é um dinossauro perto do JPA. Mas mesmo assim, o EJB 3 também tem algumas coisas meio sem sentido.

Na minha opinião, regras de negócio bem codificadas não precisam utilizar dados armazenados em atributos de SLSB ou MDBs que tornam-se inválidos após o fim da invocação dos métodos pertinentes. Tais atributos ao meu ver só deveriam ser usados para DI, o resto deveria estar em passagem de parâmetros ou em outros tipos de classes comuns que não sabem nada sobre EJB. Retirando o caso específico da DI, se você não precisa utilizar os atributos de um objeto, então este objeto não precisa ser mantido em um pool de instâncias e nem ter um ciclo de vida maluco. A injeção de dependências poderia ser feita de outra forma, uma destas formas é que todos os atributos fossem do tipo ThreadLocal ao invés do tipo XXX, então você sempre precisaria só de uma única instância de cada classe daquilo que hoje são SLSBs e MDBs. Seria algo um tanto semelhante aos Servlets (o container os trata como se fossem singletons), e pelo que andei vendo por aí, o singleton session bean do EJB 3.1 vai ser algo mais ou menos parecido com isso. Aliás, o Spring prova que DI poderia ser feito em qualquer classe, logo não há muito sentido em se criar um tipo de classe de ouro em um pedestal e chamá-la de stateless session bean só para isso (talvez para chamadas remotas até faça sentido, mas acho que isso também poderia ser trabalhado de outra forma).

Quanto a anotações de transações e interceptors, estes seriam bem melhores se pudessem ser usados em qualquer classe e não apenas em EJBs. O Spring tá aí para provar que isso é possível. Basta que o classloader altere o bytecode carregado instrumentando ele de acordo com o que há nas annotations. Aliás, DI é implementado desta forma.

Quanto ao SFSB, confesso que este pode ser bem útil, inclusive no EJB 2.1, apesar de que no EJB 2.1 o preço a pagar era bem doloroso.

Bem, esta é a minha opinião, e sei que muita gente não concorda com ela. Talvez eu esteja errado, mas é essa a visão que eu tenho.

[quote=luiz_ross][quote=pdioniziofilho][quote=Javabuntu]Provavelmente é aplicação antiga, ninguém é louco de iniciar hoje algo com EJB 2.1, sem contar que a maioria que usaram EJB 2, utilizou totalmente equivocado, acabaram por ter que implementar vários padrões e acrescentar complexidade para consertar o fato do mal uso do EJB, usavam num contexto que não era apropriado.

O EJB 3 não é uma evolução do EJB 2, pra quem conhece, sabe que EJB 3 é um novo produto que apenas herdou o nome do anterior. Hoje não vejo muito sentido de usar EJB 3 se não for local. Atualmente num projeto distribuído temos trabalho com excelência utilizando o Spring.

[]'s Hewerton Crisóstomo [/quote]

Depende,

Ano passado começamos um novo projeto aqui e tivemos que utilizar o EJB 2.1 porque o WebSphere (versao 6.1) nao suportava EJB 3 ainda.[/quote]

Funciona EJB 3 no Websphere sim senhor. Procure pelos Feature Packs desta versão, que elas habilitam o websphere para o uso desta versão de EJB[/quote]

Calma cara, ta nervoso? Eu disse “nao suportava”. Com todos esses “Feature Packs” que voce diz funciona mas com o WAS puro creio que não, mas no ano passado tinha vários papos em corredores aqui entre funcionarios mais antigos que tinham a “lenda” de que nao funcionava, e por isso usaram EJB 2.1

So dei um exemplo de pq alguem usaria (mesmo errado eeheh) EJB 2 ainda.

Quanto ao outro post, em fazer tudo na unha, nao concordo muito nao… masss…cada um com sua opinião.

E quem acha que vai só trabalhar com EJB 3 daqui pra frente se engana… é muito dificil uma empresa migrar pra de EJB2 pra EJB3 por uma serie de razoes…

é uma merda EJB 2? é… mas fazer o que…

Já trabalhei em vários projetos legados com EJB 2.1 e apenas um projeto do zero com EJB3.

Posso dizer que no projeto de EJB3 foi complicação demais apenas pela premissa de que “futuramente a aplicação pode ser distribuída”. Tudo que foi feito com EJB3 no projeto poderia ter sido resolvido de outras maneiras (alguem falou Spring?) e a injeção de dependências dele é patética.

Eu sinceramente não vejo um caso em que valha a pena usar EJB3, mesmo sendo muito superior ao EJB 2.1. Distribuir os objetos da aplicação é uma fábula que fez muita gente gastar muito dinheiro na mão de vendors de EJB.

ejb3 é tão fácil que a gente tem q se perguntar muito por que não usá-lo (principalmente pra quem usa seam). No meu caso foi por causa do application server. prefiro continuar usando só jpa pq desenvolver só com tomcat é muito mais rápido.

Porque sua aplicação precisa escalar e/ou não dispõe (nem quer dispor) de um servidor de aplicação.

Não manjo quase nada de EJB, mas vejam meu caso, quero desenvolver uma app onde toda a regra de negocios fique em um unico lugar e entao eu quero ter clientes Web e Desktop, quais seriam as soluções? Pelo que vi EJB serve pra isto correto?

A solução é separar a lógica de negócios da apresentação. Você não precisa de framework nenhum pra fazer isso.