© Copyright International Business Machines Corporation 2006. Todos direitos reservados. Direitos Restritos para Usuários do Governo dos Estados Unidos - Uso, duplicação e divulgação restritos pelo documento GSA ADP Schedule Contract com a IBM® Corporation.
Se um módulo EJB (Enterprise JavaBean) for compartilhado entre vários projetos EAR compartilhados em execução em um WebSphere Application Server e um dos projetos EAR for removido do servidor, outros projetos EAR deverão ser reiniciados antes que possam acessar os recursos, como beans EJB, no projeto EJB.
Se você não fizer essa ação, poderá ver mensagens de erro semelhantes às mostradas a seguir. Esses erros ocorrem porque o nome de JNDI (Java Naming and Directory Interface) no projeto EJB é removido do servidor quando o EAR é removido.
Aqui está uma amostra de mensagem de erro:
00000028 SystemOut O javax.naming.NameNotFoundException: Contexto: myCell/nodes/myNode/servers/server1, nome: ejb/ejbs/Session20Home: Primeiro componente no nome Session20Home não localizado. [A exceção raiz é org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0]
em com.ibm.ws.naming.jndicos.CNContextImpl.processNotFoundException(CNContextImpl.java:4730)
em com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1907)
em com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1862)
em com.ibm.ws.naming.jndicos.CNContextImpl.lookupExt(CNContextImpl.java:1552)
em com.ibm.ws.naming.jndicos.CNContextImpl.lookup(CNContextImpl.java:1354)
em com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:172)
em javax.naming.InitialContext.lookup(InitialContext.java:363)
em com.ibm.ivj.ejb.runtime.AbstractAccessBean.lookupAndCacheHome(AbstractAccessBean.java:224)
em com.ibm.ivj.ejb.runtime.AbstractAccessBean.getGlobalHome(AbstractAccessBean.java:216)
em com.ibm.ivj.ejb.runtime.AbstractAccessBean.getHome(AbstractAccessBean.java:249)
em ejbs.Session20AccessBean.ejbHome(Session20AccessBean.java:50)
em ejbs.Session20AccessBean.instantiateEJB(Session20AccessBean.java:80)
em ejbs.Session20AccessBean.foo(Session20AccessBean.java:91)
Suponha que você tenha um projeto, por exemplo um projeto Cliente Aplicativo, com as seguintes configurações:
- o aspecto do projeto para Java é configurado para a versão 1.4
- o tempo de execução do servidor de destino para esse projeto tem uma opção de substituição de método a quente ativada em sua configuração do servidor
É possível que o botão Continuar na visualização Depuração não funcione corretamente. Por exemplo, quando você executa o aplicativo no servidor no modo de depuração, tenta alterar a origem em tempo de execução e, em seguida, usa o botão Continuar para continuar a depuração do aplicativo. É possível que as alterações da substituição de método a quente no código-fonte não sejam aplicadas.
Tente clicar no botão Continuar duas vezes para permitir que as alterações do tempo de execução entrem em efeito.
Nota: Esse problema não ocorre quando você configura o aspecto do projeto para Java como a versão 5.0.
Se você incluir um arquivo JAR do utilitário em um projeto da Web e fizer referência a classes dentro do arquivo JAR em seu código, poderá obter um erro java.lang.NoClassDefFoundError ao tentar executar o aplicativo no servidor.
A solução alternativa é: após incluir um arquivo JAR do utilitário no módulo EAR, inclua o arquivo JAR nas dependências dos Módulos J2EE do projeto da Web, concluindo as seguintes etapas:
- Inclua um arquivo JAR do utilitário no módulo EAR. Consulte o tópico Incluindo arquivos JAR do utilitário do projeto na ajuda do produto para obter detalhes.
- Clique com o botão direito do mouse no projeto da Web e selecione Propriedades. A caixa de diálogo Propriedades será aberta.
- Selecione Dependências de Módulos J2EE.
- Na guia Módulos J2EE na coluna JAR/Módulo, selecione a caixa de opções ao lado do arquivo JAR do utilitário.
Se o servidor remoto estiver parado, o assistente Novo Servidor poderá demorar bastante para ser concluído após você clicar no botão Concluir. Uma solução alternativa é iniciar o servidor remoto antes de clicar no botão Concluir no assistente Novo Servidor.
Se um WebSphere Application Server v6.1 protegido for iniciado e, no editor do servidor você alterar o tipo da conexão do servidor para RMI (Remote Method Invocation) ou SOAP, você poderá ver a seguinte mensagem de erro de falha de publicação depois de salvar as alterações no editor do servidor:
A publicação não é desempenhada pois o servidor não está iniciado. Inicie o servidor antes de desempenhar a operação de publicação.
É possível ignorar com segurança o erro. Opcionalmente, depois que o status do servidor na visualização Servidores for Iniciado, você poderá concluir um comando de publicação (na visualização Servidores, clique com o botão direito do mouse no servidor e selecione Publicar).