Recursos de Desenvolvimento EJB

Este tópico descreve recursos e ferramentas de desenvolvimento que são utilizadas geralmente no desenvolvimento EJB.

Módulos de EJB

Os módulos EJB são exibidos na visualização Project Explorer da perspectiva J2EE e correspondem a projetos EJB.

Um módulo EJB é utilizado para montar um ou mais beans corporativos em uma única unidade implementável. Um módulo EJB é desenvolvido em um projeto EJB e pode ser exportado como um arquivo JAR EJB independente ou combinado com outros módulos EJB ou da Web dentro de um aplicativo corporativo. Um arquivo JAR EJB utiliza o formato de um arquivo archive Java padrão. Um módulo EJB contém o seguinte:

  • Um ou mais beans corporativos e seus arquivos .class e .java associados.
  • Gráficos e outros arquivos, dependendo da necessidade do bean corporativo.
  • Um descritor de implementação. O tipo de arquivo do descritor de implementação é XML (Extensible Markup Language). Este arquivo declara os conteúdos do módulo EJB, define a estrutura dos beans do módulo e fornece uma descrição de como os beans devem ser utilizados no momento da execução.
  • Um arquivo MANIFEST.MF no diretório META-INF. O arquivo de manifesto contém uma entrada de caminho de classe com referências a outros arquivos JAR ou módulos EJB de um aplicativo corporativo J2EE. Ele define as dependências externas do módulo.

Um módulo EJB é instalado e executado em um contêiner EJB.

Um bean corporativo é um componente Java que pode ser combinado com outros recursos para criar aplicativos cliente/servidor distribuídos.

Nota: Se você optar por criar um arquivo JAR do cliente EJB para seu módulo EJB, as classes da interface do cliente dos beans corporativos não serão incluídas no arquivo JAR EJB, mas serão incluídas no arquivo JAR do cliente EJB.
Projetos EJB

No ambiente de trabalho, você cria e mantém recursos para aplicativos corporativos em projetos. Um projeto EJB é um módulo lógico que permite que você organize seus beans corporativos.

O ambiente de trabalho suporta projetos EJB 1.1, EJB 2.0 e EJB 2.1. O nível de especificação J2EE de um projeto EAR contido deve ser definido para J2EE 1.3, ou superior, para projetos EJB 2.0 e J2EE 1.4 para projetos EJB 2.1. Em um projeto EJB 1.1, só será possível criar beans EJB 1.1.

Um projeto EJB é um projeto Java especializado. Como um projeto Java, um projeto EJB deve ter uma ou mais pastas de origem para conter os arquivos de origem e de saída do projeto. Por padrão, a pasta de origem é chamada de ejbModule, mas você pode alterar esse nome quando criar o projeto ou novas pastas de origem. Quando você publicar ou implementar o projeto, os conteúdos da pasta ou pastas são agregados.

Não é possível utilizar o projeto EJB como a pasta de origem; fazer isso causará erros. Além disso, embora você possa ter mais de uma pasta de origem em um projeto, apenas uma dessas pastas de origem pode conter a pasta META-INF na qual o arquivo MANIFEST.MF e os arquivos descritores de implementação residem.

Nota: Se você optar por criar um arquivo JAR de cliente EJB para seu módulo EJB, as classes de interface de cliente dos beans corporativos não serão incluídas no projeto EJB, mas em projetos JAR de clientes EJB separados. Projetos JAR de clientes EJB são exibidos no Project Explorer como projetos Java sob o nó Outros Projetos.
Projetos do Cliente EJB

As ferramentas EJB suportam a criação de projetos JAR do cliente EJB para módulos EJB. Um projeto JAR do cliente EJB contém todas as classes de interface que um programa cliente necessita para utilizar as visualizações cliente dos beans corporativos que estão contidos no projeto EJB. Quando você cria um projeto do cliente EJB para um projeto EJB, um novo projeto Java é criado e incluído no espaço de trabalho. O projeto do cliente EJB é incluído como um arquivo JAR de utilitário de projeto em cada módulo no qual o projeto EJB pertence.

Por padrão, quando você utiliza o assistente para criar um projeto EJB, um projeto JAR do cliente EJB também é criado. Entretanto, você pode alterar essa opção no assistente.

Dica: Também é possível incluir o projeto do cliente EJB em outro aplicativo corporativo que não inclui o projeto EJB como um módulo. Isso irá garantir que o arquivo JAR do cliente EJB seja exportado e compactado com o arquivo EAR quando o aplicativo for exportado.
Beans corporativos

Um bean corporativo é um componente Java que pode ser combinado com outros recursos para criar aplicativos cliente/servidor distribuídos.

Existem três tipos de beans corporativos: beans de entidade, beans de sessão e beans orientados por mensagens. Geralmente, todos os tipos de beans são utilizados juntos, dentro de um aplicativo corporativo.

Beans de Entidade
Beans de entidade armazenam dados permanentes. Beans de entidade com CMP (Container-Managed Persistence) requerem conexões com o banco de dados. Os beans de entidade com persistência gerenciada por bean gerenciam dados permanentes em qualquer maneira definida no código do bean. Isso pode incluir a gravação no banco de dados de arquivos XML, por exemplo.
Beans de Sessão
Beans de sessão não requerem acesso ao banco de dados, embora eles possam obtê-lo indiretamente (conforme necessário) acessando beans de entidade. Os beans de sessão também podem obter acesso direto a bancos de dados (e outros recursos) utilizando referências de recursos.
Beans Orientados a Mensagens
Beans orientados a mensagens são um tipo especial de bean corporativo que agem como consumidores de mensagem no sistema de mensagens JMS. Como com consumidores de mensagens JMS padrão, beans orientados a mensagens executam lógica de negócios com base nos conteúdos da mensagem. De diversas maneiras, a criação dinâmica e alocação de instâncias de beans orientados a mensagens imitam o comportamento de beans corporativos de sessão sem preservação de estado. No entanto, beans orientados a mensagens são diferentes de beans corporativos de sessão sem preservação de estado (e de outros tipos de beans corporativos) de algumas maneiras:
  • Os beans orientados a mensagens processam várias mensagens JMS de maneira assíncrona, em vez de processar uma seqüência serializada de chamadas de método.
  • Os beans orientados a mensagens não possuem interface inicial ou remota e, portanto, não podem ser acessados diretamente por clientes internos ou externos.
Descritores de implementação

Um descritor de implementação contém dados de configuração que o ambiente de tempo de execução utiliza para um aplicativo. Um descritor de implementação pode incluir informações sobre o seguinte:

  • A estrutura e o conteúdo (beans corporativos, por exemplo) do aplicativo.
  • Referências a dependências internas e externas. Por exemplo, um bean corporativo em um módulo EJB pode exigir outro bean corporativo que não esteja incluído no pacote configurável do mesmo módulo.
  • As referências a objetos da fábrica de recursos, como URLs ou origens de dados JDBC.
  • Funções de segurança que o contêiner utiliza ao implementar o controle de acesso exigido para o aplicativo.
  • Informações transacionais sobre como (e se) o contêiner deve gerenciar transações para o aplicativo.

Os descritores de implementação são arquivos XML compactados com os arquivos do aplicativo em um arquivo archive Java. Um descritor de implementação EJB é chamado de ejb-jar.xml e localiza-se na pasta META-INF de um projeto EJB. Um aplicativo J2EE contém um arquivo descritor de implementação do nível do aplicativo que regula o aplicativo como um todo. Ele também contém diversos descritores de implementação do nível de componente, um para cada módulo no aplicativo.