Erro deploy módulo EJB - Glassfish v2.1 / Netbeans 6.5

2 respostas
adamitj

Olá pessoal. Estou tendo um sério problema para fazer o deploy de uma aplicação Web pelo Netbeans 6.5. Já tentei diversas soluções (reinstalar o NetBeans, criar novos projetos...) mas o problema persiste.

Primeiro, vou dar as informações sobre o ambiente:
- Ubuntu Linux 8.10 64-bit
- Glassfish v2.1
- Netbeans 6.5
- Java 1.6.0 u11

Sobre os projetos e suas bibliotecas:

- sgp-ejb (EJB's);
+ lib\sgp-lib.jar
+ lib\sscore.jar

- sgp-war (WEB);
+ lib\sgp-lib.jar
+ lib\sscore.jar
+ lib\sgp-ejb.jar

- sgp-app-client (Swing);
+ lib\sgp-lib.jar
+ lib\sscore.jar
+ lib\sgp-ejb.jar

- sgp-lib

- sscore

Os três projetos principais (ejb, war e app-client) faziam parte de um Enterprise Application, mas diversos erros começaram a ocorrer com o EAR (não conseguia fazer o deploy do módulo ejb), e na falta de conseguir uma solução acabei desmembrando-os. Agora, eu consigo fazer o deploy dos EJB's e a aplicação Swing faz o acesso a eles perfeitamente (usando apenas as interfaces remotas via RMI/IIOP sem o uso da annotation @EJB).

Não consigo fazer o deploy somente do projeto SGP-WAR (Web). Se eu fizer um "Clean & Build" tudo corre normalmente, o erro acontece apenas ao tentar fazer o deploy (detalhe: o EJB já está funcionando):

# Cannot resolve reference Unresolved Ejb-Ref com.sssistemas.sgp_ejb.R003_PesquisaBean/r001_SessionBean@jndi: @[email removido].sgp_ejb.R001_SessionLocal@Session@null  
# Exception occured in J2EEC Phasejava.lang.RuntimeException: Cannot resolve reference Unresolved Ejb-Ref com.sssistemas.sgp_ejb.R003_PesquisaBean/r001_SessionBean@jndi: @[email removido].sgp_ejb.R001_SessionLocal@Session@null  
# com.sun.enterprise.deployment.backend.IASDeploymentException: Error loading deployment descriptors for module [sgp-war] -- Cannot resolve reference Unresolved Ejb-Ref com.sssistemas.sgp_ejb.R003_PesquisaBean/r001_SessionBean@jndi:

Aqui está o trace completo:

deployed with moduleid = sgp-ejb
**RemoteBusinessJndiName: ejb/R002_UsuarioBean; remoteBusIntf: com.sssistemas.sgp_ejb.R002_UsuarioRemote
**RemoteBusinessJndiName: ejb/R001_SessionBean; remoteBusIntf: com.sssistemas.sgp_ejb.R001_SessionRemote
**RemoteBusinessJndiName: ejb/R003_PesquisaBean; remoteBusIntf: com.sssistemas.sgp_ejb.R003_PesquisaRemote
**RemoteBusinessJndiName: ejb/R004_ProjetoBean; remoteBusIntf: com.sssistemas.sgp_ejb.R004_ProjetoRemote
LDR5010: All ejb(s) of [sgp-ejb] loaded successfully!
Cannot resolve reference Unresolved Ejb-Ref com.sssistemas.sgp_ejb.R003_PesquisaBean/r001_SessionBean@jndi: @[email removido].sgp_ejb.R001_SessionLocal@Session@null
Exception occured in J2EEC Phasejava.lang.RuntimeException: Cannot resolve reference Unresolved Ejb-Ref com.sssistemas.sgp_ejb.R003_PesquisaBean/r001_SessionBean@jndi: @[email removido].sgp_ejb.R001_SessionLocal@Session@null
com.sun.enterprise.deployment.backend.IASDeploymentException: Error loading deployment descriptors for module [sgp-war] -- Cannot resolve reference Unresolved Ejb-Ref com.sssistemas.sgp_ejb.R003_PesquisaBean/r001_SessionBean@jndi: @[email removido].sgp_ejb.R001_SessionLocal@Session@null
        at com.sun.enterprise.deployment.backend.Deployer.loadDescriptors(Deployer.java:406)
        at com.sun.enterprise.deployment.backend.ModuleDeployer.loadDescriptors(ModuleDeployer.java:426)
        at com.sun.enterprise.deployment.backend.WebModuleDeployer.deploy(WebModuleDeployer.java:160)
        at com.sun.enterprise.deployment.backend.ModuleDeployer.doRequestFinish(ModuleDeployer.java:182)
        at com.sun.enterprise.deployment.phasing.J2EECPhase.runPhase(J2EECPhase.java:208)
        at com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)
        at com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:966)
        at com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentService.java:283)
        at com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentService.java:835)
        at com.sun.enterprise.management.deploy.DeployThread.deploy(DeployThread.java:187)
        at com.sun.enterprise.management.deploy.DeployThread.run(DeployThread.java:225)
Caused by: java.lang.RuntimeException: Cannot resolve reference Unresolved Ejb-Ref com.sssistemas.sgp_ejb.R003_PesquisaBean/r001_SessionBean@jndi: @[email removido].sgp_ejb.R001_SessionLocal@Session@null
        at com.sun.enterprise.deployment.util.EjbBundleValidator.accept(EjbBundleValidator.java:430)
        at com.sun.enterprise.deployment.WebBundleDescriptor.visit(WebBundleDescriptor.java:1415)
        at com.sun.enterprise.deployment.archivist.WebArchivist.validate(WebArchivist.java:188)
        at com.sun.enterprise.deployment.archivist.ApplicationArchivist.openArchive(ApplicationArchivist.java:840)
        at com.sun.enterprise.deployment.archivist.ApplicationArchivist.openArchive(ApplicationArchivist.java:794)
        at com.sun.enterprise.deployment.backend.Deployer.loadDescriptors(Deployer.java:365)
        ... 10 more

Alguém tem alguma idéia do que pode estar acontecendo?

2 Respostas

cristiano.andrade

Você está usando a anotação @EJB na aplicação war?

adamitj

Diferentemente de aplicações stand-alone escritas em Swing, o NetBeans não dá suporte para acessar SessionBeans a partir de um projeto de aplicação Web que esteja fora de um Enterprise Application Project. Deve ser um problema do Netbeans, pois somente o fato de incluir o projeto EJB referenciado dentro do projeto Web - e não usar a referência de nenhuma classe ou interface - é suficiente para acusar o erro.

Solução: criar um projeto EA e colocar tudo dentro dele.

Criado 16 de abril de 2009
Ultima resposta 23 de abr. de 2009
Respostas 2
Participantes 2