Realizei alguns testes no branch que deve ser um dos últimos antes do release GA do JBoss ESB, entre as inúmeras novidades, que vão desde monitoração até suporte a novos componentes, destacarei neste post, a comunicação com Enterprise Java Beans - EJB.

Por padrão o JBoss ESB Server que é o servidor JBoss com suporte aos componentes ESB, não traz o EJB Container embutido nele, entretanto provando que o JBoss App Server é um servidor 100% personalizável, nada impede que adicionemos este suporte, e para isto os passos são simples:

  • Copiar o ejb3-persistence.jar para o jboss_home/[perfil]/lib on seu perfil pode ser o “default”
  • Copiar os seguintes arquivos e pastas para o seu perfil (ex: default) :
  • ejb3.deployer (pasta com o serviço de deployer EJB3)
  • ear-deployer.xml (descritor do deployer de EARs)
  • ejb3-interceptors-aop.xml (interceptors padrões)
  • ejb-deployer.xml (descritor do deployer de EJB3

Copiando isto para o seu ESB Server , este por sua vez estará apto a receber componentes EJB3, já que o container EJB está agora junto do container ESB.Novo QuickStart: ejbProcessor Na versão GA, será possível testar um novo quickstart, o ejbProcessor, se você for fazer isto hoje do branche, deverá receber alguns erros do deployer do JBoss quando tentar realizar o deploy, na verdade, nem o script ant dos quickstarts deixa você fazer deploy no ESB Server, se este não tiver o EJB container instalado. Seguindo os passos acima, você poderá realizar o deploy sem problemas.

O mais importante notar neste novo quick-start é a declaração do Serviço EJB dentro do jboss-esb.xml:

jboss-esb.png

Como você pode observar, dado que estes EJBs estejam associados a algum protocolo (jms, ftp, filesystem, email, rest etc), eles serão ativados de acordo como descrito no exemplo.

Como você pode imaginar agora, todo seu arsenal de EJBs podem facilmente responder a eventos dentro do seu barramento de serviços.

Bom uso de seus EJBs, sejam eles 3.0 ou 2.x!

[]s

E

2 Responses to “Novidades por vir no JBoss ESB 4.4”

  1. Ben-Hur Langoni Jr says:

    Olá Edgar.

    Na verdade existem outros quickstarts que dependem de um EJB3 container, como o webservice_bpel.
    Porém, para que o seu ESB server suporte EJBs, o mais indicado seria vc instalar o jbossesb-4.4.GA.zip através do Ant em um JbossAS comum, ao invés de copiar os arquivos do EJB3 deployer na distribuição que vem no arquivo jbossesb-server-4.4.GA.zip (conforme documentação do jboss esb).
    Aliás, a distribuição jbossesb-server foi criada justamente para tirar o peso de um container EJB do ESB. Em minha opinião o ideal é que o ESB fique separado dos servidores de aplicações, definido o PAPEL de um barramento. No seu exemplo acima bastaria vc referenciar o servidor remoto a partir da propriedade provider-url.
    A conveniencia de ser ter um ESB que também é um container EJB se faz necessário para facilitar a vida do desenvolvedor mas, para um ambiente de produção, acho que não seria recomendável.

    Abraços,
    Ben-Hur Langoni Júnior

  2. Edgar Silva says:

    @Ben-Hur,

    Obrigado pelo comentário, vamos apenas a algumas ressalvas:

    “Porém, para que o seu ESB server suporte EJBs, o mais indicado seria vc instalar o jbossesb-4.4.GA.zip através do Ant em um JbossAS comum, ao invés de copiar os arquivos do EJB3 deployer na distribuição que vem no arquivo jbossesb-server-4.4.GA.zip (conforme documentação do jboss esb).”

    Concordo plenamente, e é o que eu recomendo para alguns clientes, porém particularmente no Brasil, vários clientes “adoram” sabe-se lá o porquê de ter tudo dentro de um único container, e ai eu pergunto: “Isso está errado?”, do ponto de vista técnico é possível, e em alguns aspectos facilitam questões de clustering, fail-over, etc…. Eu resolvi mostrar tudo dentro de um único container para fins “didáticos”, pode ter certeza que se você espera usar o JBoss ESB na sua empresa, a sua abordagem é a que mais prefiro e melhor recoemdno.

    “Aliás, a distribuição jbossesb-server foi criada justamente para tirar o peso de um container EJB do ESB. Em minha opinião o ideal é que o ESB fique separado dos servidores de aplicações, definido o PAPEL de um barramento. No seu exemplo acima bastaria vc referenciar o servidor remoto a partir da propriedade provider-url.”

    Não, a versão JBoss ESB Server não foi empacotada desta forma por esse motivo, melhor até deixar pra lá esta questão… Voltando a didática: Se eu quero mostrar um simples exemplo do ESB+EJB eu não vou ter que mostrar no post os passoas para rodar uma outra instancia de JBoss na mesma máquina, ou não sei se o leitor irá ter a possibilidade de ter +1 servidor para testes em casa ou no trabalho. No caso, este exemplo é bem interessante quando usado com outros AppServers como WebSphere, Oracle, BEA etc.

    “A conveniencia de ser ter um ESB que também é um container EJB se faz necessário para facilitar a vida do desenvolvedor mas, para um ambiente de produção, acho que não seria recomendável.”

    Como te disse, concordo em gênero, número e grau, a intenção aqui foi didática, e seu comentário só engrandeceu o conteúdo do post, meu muito obrigado.

    Fico muito feliz em saber que há pessoas como você com este conhecimento a respeito do JBoss ESB no Brasil.

    []s

    E

Leave a Reply