Ligações de Aplicativos

Antes de um aplicativo instalado em um servidor de aplicativos poder iniciar, todas as referências do EJB (Enterprise JavaBean) e referências de recursos definidas no aplicativo deverão estar ligadas aos artefatos em si (beans corporativos ou recursos) definidos no servidor de aplicativos.

Ao definir ligações, você especifica os nomes de Java™ Naming and Directory Interface (JNDI) para os artefatos referenciáveis e referenciados em um aplicativo. Os valores jndiName especificados para os artefatos devem ser nomes de consulta qualificados. Um exemplo de artefato referenciável é um EJB definido em um aplicativo. Um exemplo de artefato referenciado é um EJB ou referência de recurso utilizada pelo aplicativo.

As definições de ligação são armazenadas nos arquivos ibm-xxx-bnd.xml ou ibm-xxx-bnd.xmi de um aplicativo. As versões de ligação da versão 7.0 ou posterior suportam arquivos com o sufixo de XML para EJB 3.x e Web 2.5 e módulos posteriores. Os módulos anteriores ao Java EE 5 continuam a utilizar arquivos de definição de ligação com o sufixo XMI, como nas versões anteriores de WebSphere Application Server. O xxx pode ser ejb-jar, web, application ou application-client.

Consulte as informações a seguir sobre as ligações:

Momentos em que as Ligações Podem Ser Definidas

É possível definir ligações nos seguintes momentos:

  • Durante o desenvolvimento de aplicativos

    Um desenvolvedor de aplicativos pode criar definições de ligação em arquivo ibm-xxx-bnd.xml para módulos EJB 3.x e Web 2.5 e posterior e em arquivos ibm-xxx-bnd.xmi para módulos anteriores ao Java EE 5. O desenvolvedor de aplicativos pode criar os arquivos utilizando uma ferramenta como IBM® Rational developer ou, para módulos EJB 3.x ou Web 2.5 e posterior, utilizar um editor XML ou editor de texto. O desenvolvedor, então, fornece um aplicativo corporativo (arquivo .ear) completo com ligações para um assembler de aplicativos ou um implementador. Ao montar o aplicativo, o assembler não modifica as ligações. De forma semelhante, ao instalar o aplicativo em um servidor suportado pelo WebSphere Application Server, o implementador não modifica ou substitui as ligações ou gera ligações padrão a não ser que alterações nas ligações sejam necessárias para a implementação bem-sucedida do aplicativo.

  • Durante a montagem do aplicativo

    Um assembler de aplicativos pode definir ligações em anotações ou em descritores de implementação de um aplicativo. Módulos Java EE 5 ou posterior contêm anotações no código de origem. Para declarar uma anotação, um assembler de aplicativos precede uma palavra-chave com um caractere @ ("arroba"). As ligações de módulos pré-Java EE 5 são especificadas na seção Ligações do WebSphere de um editor de descritores de implementação. A modificação dos descritores de implementação pode alterar as definições de ligações nos arquivos ibm-xxx-bnd.xmi criados no desenvolvimento de um aplicativo. Depois de definir as ligações, o assembler fornece o aplicativo a um implementador. Ao instalar o aplicativo em um servidor suportado pelo WebSphere Application Server, o implementador não modifica ou substitui as ligações ou gera ligações padrão, a menos que as alterações nas ligações sejam necessárias para implementar o aplicativo.

  • Durante a Instalação do Aplicativo

    Um implementador de aplicativos ou administrador do servidor pode modificar as ligações ao instalar o aplicativo em um servidor suportado pelo WebSphere Application Server utilizando o console administrativo. Novas definições de ligação podem ser especificadas nas páginas do assistente de instalação.

    Além disso, um implementador ou um administrador pode optar por gerar ligações padrão durante a instalação do aplicativo. Selecionar Gerar ligações padrão durante a instalação do aplicativo instrui o produto a inserir ligações incompletas no aplicativo com valores padrão. As ligações existentes não são alteradas.

    Restrição: Você não pode definir ou substituir ligações durante a instalação do aplicativo para aplicativos clientes. Você deve definir ligações para módulos de aplicativos clientes durante a montagem e o armazenamento das ligações no arquivo ibm-application-client-bnd.xmi.
  • Durante a Configuração do Aplicativo Instalado

    Após instalar um aplicativo em um servidor suportado pelo WebSphere Application Server, um implementador de aplicativos ou administrador do servidor pode modificar as ligações alterando valores nas páginas do console administrativo, como aquelas acessadas a partir da página de configurações para o aplicativo corporativo.

Ligações Requeridas

Antes de um aplicativo poder ser implementado com êxito, ligações devem ser definidas para referências aos artefatos a seguir:

Nomes de JNDI de EJB
Para cada EJB 2.1 ou enterprise bean (EJB) anterior, você deve especificar um nome JNDI. O nome é utilizado para ligar uma entrada no namespace de JNDI global para o objeto home do EJB. Um nome JNDI de exemplo para um EJB Product em um aplicativo Store pode ser store/ejb/Product. A definição de ligação é armazenada no arquivo META-INF/ibm-ejb-jar-bnd.xmi.

Se um implementador optar por gerar ligações padrão ao instalar o aplicativo, o assistente de instalação designará nomes JNDI do EJB com o formato prefix/EJB_name para ligações incompletas. O prefixo padrão é ejb, mas pode ser substituído. O EJB_name é o mesmo especificado na tag <ejb-name> do descritor de implementação.

Durante e após a instalação do aplicativo, os nomes JNDI do EJB podem ser especificados na página Fornecer Nomes JNDI para Beans. Após a instalação, clique em Aplicativos > Tipos de Aplicativos > Aplicativos Corporativos do WebSphere > application_name > Nomes JNDI do EJB no console administrativo.

Você não precisa especificar nomes de ligação JNDI para cada uma das interfaces de negócios ou iniciais do EJB 3.x em seus enterprise beans, porque o contêiner EJB designa ligações padrão.

Origens de Dados para Beans de Entidade
Beans de entidade, como beans CMP (Container-managed Persistence) armazenam dados persistentes em armazéns de dados. Com os beans CMP, um contêiner EJB gerencia o estado persistente dos beans. Você especifica qual armazém de dados um bean utiliza ligando um módulo EJB ou um enterprise bean individual a uma origem de dados. A ligação de um módulo EJB a uma origem de dados faz com que todos os beans de entidade nesse módulo utilizem a mesma origem de dados para persistência.

Um nome de JNDI de exemplo para uma origem de dados Store em um aplicativo Store pode ser store/jdbc/store. Para módulos anteriores ao Java EE 5, a definição de ligação é armazenada em arquivos de ligação IBM, como ibm-ejb-jar-bnd.xmi. Um implementador também pode especificar se a autenticação é manipulada no nível do contêiner ou do aplicativo.

O WebSphere Application Server Versão 8.x suporta beans de CMP em módulos EJB 2.x ou 1.x. A versão 8.x não suporta beans de CMP em módulos EJB 3.0.

Se um implementador optar por gerar ligações padrão ao instalar o aplicativo, o assistente de instalação gerará o seguinte para ligações incompletas:

  • Para arquivos .jar do EJB 2.x, ligações do connection factory baseadas no nome de JNDI e em informações de autorização especificadas
  • Para arquivos .jar do EJB 1.1, as ligações de origem de dados baseadas no nome de JNDI, nome do usuário e senha da origem de dados especificados

As ligações geradas fornecem as configurações padrão do connection factory para cada arquivo .jar do EJB 2.x e as configurações de origem de dados padrão para cada arquivo .jar do EJB 1.1 no aplicativo que está sendo instalado. Nenhuma ligação do connection factory ou ligação de origem de dados no nível do bean é gerada a menos que sejam especificadas na regra de estratégia customizada fornecida durante a geração da ligação padrão.

Durante e após a instalação do aplicativo, é possível mapear origens de dados para beans de entidade 2.x na página Origens de Dados de Beans CMP 2.x e na página Origens de Dados de Beans de Entidade 2.x. Após a instalação, clique em Aplicativos > Tipos de Aplicativos > Aplicativos Corporativos WebSphere > application_name no console administrativo e, em seguida, selecione Origens de Dados de Beans CMP 2.x ou Origens de Dados de Beans de Entidade 2.x. É possível mapear origens de dados para beans de entidade 1.x na página Mapear origens de dados para todos os beans CMP 1.x e na página Fornecer mapeamento de origem de dados padrão para módulos que contenham beans de entidade 1.x. Após a instalação, acesse páginas do console como aquelas para beans CMP 2.x, exceto clique links para beans CMP 1.x.

ID de Backend para Módulos EJB
Se um arquivo .jar do EJB que define beans CMP contiver mapeamentos para vários bancos de dados de backend, especifique o ID de backend apropriado que determina quais classes persistentes são carregadas no tempo de execução.

Especifique o ID de backend durante a instalação do aplicativo. Não é possível selecionar um ID de backend após instalar o aplicativo em um servidor.

Para ativar IDs de backend para módulos EJB individuais:

  1. Durante a instalação do aplicativo, selecione Implementar Enterprise Beans na página Selecionar Opções de Instalação. A seleção de Implementar Enterprise Beans permite acessar a página Fornecer Opções para Executar a Implementação EJB.
  2. Na página Fornecer Opções para Executar a Implementação EJB, configure o tipo de banco de dados para "" (nulo).

Durante a instalação do aplicativo, se você selecionar Implementar Enterprise Beans na página Selecionar Opções de Instalação e especificar um tipo de banco de dados para a ferramenta de implementação de EJB na página Fornecer opções para executar a Implementação de EJB, os IDs de back end anteriormente definidos para os módulos EJB serão sobrescritos pelo tipo de banco de dados escolhido.

O tipo de banco de dados padrão é DB2UDB_V81.

A ferramenta de implementação EJB não é executada durante a instalação de módulos EJB 3.0 ou posterior.

Para obter informações sobre bancos de dados backend, consulte a documentação da V8.5.5 sobre a ferramenta de implementação EJB e o comando ejbdeploy.

Referências do EJB
Uma referência de enterprise bean (EJB) é um nome lógico utilizado para localizar a interface home de um enterprise bean. As referências do EJB são especificadas durante a implementação. No tempo de execução, as referências de EJB são ligadas ao local físico (nome de JNDI global) dos enterprise beans no ambiente operacional de destino. As referências EJB são disponibilizadas no subcontexto de nomenclatura Java java:comp/env/ejb, ou em outro namespace java: se o nome de referência for uma URL java:module, java:app ou java:app. As referências EJB com nomes de URL são ligadas ao namespace correspondente, de acordo com a URL.

O produto designa valores JNDI padrão ou resolve automaticamente destinos de referência incompletas do EJB 3.0.

Para cada referência EJB 2.1 ou anterior, você deve especificar um nome JNDI. Um nome JNDI de exemplo para uma referência do EJB Supplier em um aplicativo Store pode ser store/ejb/Supplier. A definição de ligação é armazenada nos arquivos de ligação IBM, como ibm-ejb-jar-bnd.xmi. Quando o EJB referenciado também é implementado no mesmo servidor de aplicativos, é possível especificar um nome de JNDI com escopo no servidor. Mas, se o EJB referenciado é implementado em um servidor de aplicativos diferente ou se ejb-ref é definido em um módulo do cliente aplicativo, é necessário especificar o nome de JNDI com escopo na célula.

Se um implementador optar por gerar ligações padrão ao instalar o aplicativo, o assistente de instalação ligará referências EJB como descrito a seguir. Se um <ejb-link> for localizado, ele será honrado. Se o ejb-name de um EJB definido no aplicativo corresponder ao nome ejb-ref, esse EJB será escolhido. Caso contrário, se um EJB exclusivo for localizado com uma interface home de correspondência (ou home local) como o bean referenciado, a referência é resolvida automaticamente.

Durante e após a instalação do aplicativo, é possível especificar nomes JNDI da referência EJB na página Mapear referências EJB para beans. Após a instalação, clique em Aplicativos > Tipos de Aplicativos > Aplicativos Corporativos WebSphere > application_name > Referências do EJB no console administrativo.

Nota: Para permitir que os destinos de referência EJB sejam resolvidos automaticamente se as referências forem de módulos EJB 2.1 ou anterior ou de módulos Web 2.3 ou anterior, selecione Gerar Ligações Padrão na página Preparando Instalação do Aplicativo ou selecione Permitir que os destinos de referência EJB sejam resolvidos automaticamente nas páginas do console Selecionar Opções de Instalação, Mapear Referências EJB para Beans ou Referências EJB.
Referências de Recurso
Uma referência de recurso é um nome lógico utilizado para localizar um recurso externo para um aplicativo. As referências de recursos são especificadas durante a implementação. No tempo de execução, as referências são ligadas à localização física (nome de JNDI global) do recurso no ambiente operacional de destino. As referências de recurso que não usam uma URL para o nome JNDI são disponibilizadas da seguinte maneira:
Tabela 1. Subcontextos de Referência de Recurso. Nomes da JNDI java:comp/env são usados para subcontextos de referência de recurso.
Tipo de Referência de Recurso Subcontexto declarado em
Origem de dados Java DataBase Connectivity (JDBC) java:comp/env/jdbc
Connection factory JMS java:comp/env/jms
Connection factory JavaMail java:comp/env/mail
Connection factory Uniform Resource Locator (URL) java:comp/env/url

Alternativamente, os aplicativos podem designar nomes para as referências de recurso que sejam URLs java: com prefixos como java:module, java:app e java:global. As URLs são mapeadas para namespaces diferentes do namespace do componente, que contém ligações de nome java:comp/env. As referências de recursos com nomes de URL são ligadas ao namespace correspondente, de acordo com a URL.

Para cada referência de recurso, você deve especificar um nome JNDI. Se um implementador optar por gerar ligações padrão ao instalar o aplicativo, o assistente de instalação gerará ligações de referência de recurso derivadas da <res-ref-name>, supondo-se que o nome java:comp/env seja o mesmo que o nome JNDI global do recurso.

Durante a instalação do aplicativo, é possível especificar nomes JNDI de referência de recurso na página Mapear referências de recurso para referências. Especifique os nomes de JNDI para os recursos que representam os nomes lógicos definidos nas referências de recursos. Como opção, é possível especificar o nome da configuração de login e as propriedades de autenticação para o recurso. Depois de especificar as propriedades de autenticação, clique em OK para salvar os valores e retornar à etapa de mapeamento. Cada referência de recurso definida em um aplicativo deve ser ligada a um recurso definido na configuração do WebSphere Application Server. Após a instalação, clique em Aplicativos > Tipos de Aplicativos > Aplicativos corporativos do WebSphere > application_name > Referências de recursos no console administrativo para acessar a página Referências de recursos.

Ligações de host virtual para módulos da Web
Você deve ligar cada ligar a um host virtual específico. A ligação informa um plug-in de servidor da Web que todas as solicitações que correspondem ao host virtual devem ser tratadas pelo aplicativo da Web. Um exemplo de host virtual a ser ligado a um aplicativo da Web Store pode ser store_host. A definição de ligação é armazenada nos arquivos de ligação IBM, como WEB-INF/ibm-web-bnd.xmi.

Se um implementador optar por gerar ligações padrão ao instalar o aplicativo, o assistente de instalação configurará o host virtual como default_host para cada arquivo .war.

Durante e após a instalação do aplicativo, é possível mapear um host virtual para um módulo da Web definido em seu aplicativo. Na página Mapear hosts virtuais para módulos da Web, especifique um host virtual. O número da porta especificado na definição de host virtual é usado na URL usada para acessar artefatos, como servlets e arquivos JavaServer Pages (JSP) no módulo da Web. Por exemplo, uma URL externa para um artefato da Web, como um arquivo JSP é http://host_name:virtual_host_port/context_root/jsp_path. Após a instalação, clique em Aplicativos > Tipos de Aplicativos > Aplicativos Corporativos WebSphere > application_name > Hosts Virtuais no console administrativo.

Beans orientados por mensagem
Para cada bean orientado a mensagens, você deve especificar uma fila ou tópico no qual o bean atenderá. Um bean acionado por mensagens é chamado pelo listener do JMS (Java Messaging Service) quando uma mensagem chega na fila de entrada que o listener está monitorando. Um implementador especifica uma porta listener ou nome JNDI de uma especificação de ativação conforme definido em um módulo conector (arquivo .rar) em Ligações do WebSphere na página Beans de um editor do descritor de implementação EJB da ferramenta de montagem. Um nome de JNDI de exemplo para uma porta listener a ser utilizada por um aplicativo Store pode ser StoreMdbListener. A definição de ligação é armazenada nos arquivos de ligação IBM, como ibm-ejb-jar-bnd.xmi.
Se um implementador optar por gerar ligações padrão ao instalar o aplicativo, o assistente de instalação designará nomes JNDI para ligações incompletas.
  • Para beans acionados por mensagens EJB 2.0 ou posterior implementados como recursos compatíveis com o JCA 1.5, o assistente de instalação designa nomes JNDI correspondentes a instâncias activationSpec no formato eis/MDB_ejb-name.
  • Para beans acionados por mensagens EJB 2.0, ou posterior, implementados para portas listener, as portas listener são derivadas da tag <ejb-name> do bean acionado por mensagens com a sequência Port anexada.

Durante a instalação do aplicativo usando o console administrativo, é possível especificar um nome da porta listener ou um nome JNDI da especificação de ativação para cada bean acionado por mensagens na página Ligar listeners para beans acionados por mensagens. Um nome de porta listener deve ser fornecido ao utilizar os provedores JMS: sistema de mensagens padrão da Versão 5, WebSphere MQ ou genérico. Uma especificação de ativação deve ser fornecida quando os recursos do aplicativo forem configurados utilizando o fornecedor de sistema de mensagens padrão ou qualquer adaptador de recursos J2C genérico que suporte o sistema de mensagens de entrada. Se nenhum dos dois for especificado, um erro de validação será exibido após você clicar em Concluir na página Resumo.

Após a instalação do aplicativo, é possível especificar nomes JNDI e configurar beans acionados por mensagens nas páginas do console em Recursos > JMS > Provedores JMS ou em Recursos > Adaptadores de Recursos.

Restrição: Só é possível ligar beans orientados por mensagem que estiverem definidos em um módulo EJB 3.0 ou posterior em uma especificação de ativação.
Referências de destino de mensagens
Uma referência de destino de mensagens é um nome lógico utilizado para localizar um enterprise bean em um módulo EJB que age como um destino de mensagens. As referências de destino da mensagem existem apenas nos artefatos do J2EE 1.4 e anterior, como a seguir--
  • Clientes aplicativos J2EE 1.4
  • Projetos do EJB 2.1
  • Aplicativos da Web 2.4

Se várias referências de destino de mensagens são associadas a um único link de destino de mensagens, um único nome de JNDI para um enterprise bean que mapeia no link de destino de mensagens e, por sua vez, para todas as referências de destino de mensagens vinculadas, é coletado durante a implementação. No tempo de execução, as referências de destino de mensagens são ligadas aos destinos de mensagens administrados no ambiente operacional de destino.

Se uma referência de destino de mensagem e um bean acionado por mensagens estiverem vinculados pelo mesmo destino de mensagem, a referência e o bean devem ter o mesmo nome de JNDI de destino. Quando ambos tiverem o mesmo nome, somente o nome de JNDI de destino do bean acionado por mensagens é coletado e aplicado na referência de destino de mensagem correspondente.

Se um implementador optar por gerar ligações padrão ao instalar o aplicativo, o assistente de instalação designará nomes JNDI para referências de destino de mensagem incompletas como descrito a seguir. Se uma referência de destino de mensagem tiver um <message-destination-link>, o nome JNDI será configurado ejs/message-destination-linkName. Caso contrário, o nome JNDI é definido como eis/message-destination-refName.

Dependendo das referências e dos artefatos utilizados pelo aplicativo, poderá ser necessário definir ligações para outras referências e artefatos.

Conflitos de Recurso de Aplicativo

Antes da Versão 8 do produto, os recursos definidos pelo aplicativo, como referências e entradas do ambiente, foram ligados ao namespace do componente relativo a java:comp/env. Na Versão 8.0 e posterior, um desenvolvedor de aplicativos pode designar um nome para um recurso que é uma URL java: prefixada com java:module, java:app ou java:global. Cada uma dessas URLs é resolvida para namespaces distintos, diferente do namespace do componente. Um namespace java:module é compartilhado entre todos os componentes em um módulo, um namespace java:app é compartilhado entre todos os módulos em um aplicativo e um namespace java:global é compartilhado entre todos os aplicativos em uma célula. Como os namespaces são compartilhados, o mesmo nome pode ser designado a diferentes recursos, resultando em conflitos.

Poderão ocorrer conflitos no escopo do módulo somente se dois componentes no módulo definirem recursos com o mesmo nome. Por causa do pequeno tamanho desse escopo, é pouco provável que um módulo tenha conflitos de verdade. No entanto, se existirem várias instâncias da mesma definição de recurso, elas deverão ter a mesma configuração. Por exemplo, duas referências EJB a um tipo de EJB específico que tenham o mesmo nome java:module designado devem ser configuradas com os mesmos dados de ligação. Caso contrário, os dois recursos conflitarão e a ação de configuração do aplicativo falhará.

Os recursos com escopo definido do aplicativo são como recursos com escopo definido do módulo. A única diferença é que as definições podem originar de qualquer módulo no aplicativo. Assim como ocorre com recursos com escopo definido do módulo, todos os recursos com escopo definido do aplicativo que têm o mesmo nome devem ser do mesmo tipo de recurso e devem ser configurados com os mesmos dados de ligação.

Os recursos com escopo global definido diferem dos recursos com escopo definido do aplicativo e com escopo definido do módulo em que podem ocorrer conflitos entre diferentes aplicativos. Quando ocorrer um conflito, os aplicativos conflitantes poderão não coexistir se os recursos não forem logicamente os mesmos. Se diversas ocorrências de um recurso com escopo global definido identificarem logicamente o mesmo recurso, todas elas deverão estar configuradas com os mesmos dados de ligação para que não sejam detectadas pelo produto como conflitantes. Para editar um recurso com escopo global definido para o qual existem ocorrências referentes a diversos aplicativos, todos os aplicativos da definição devem ser editados na mesma sessão, para que não seja apresentado um conflito. A falha disso resultará em uma falha ao salvar a sessão.


Ícone que indica o tipo de tópico Tópico de Conceito



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=crun_app_bindings
Nome do arquivo: crun_app_bindings.html