Win a copy of Murach's Python Programming this week in the Jython/Python forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

unresolved ejb-link  RSS feed

 
Henrique Ordine
Ranch Hand
Posts: 129
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Dear ranchers:

I have this web application (SoftBudgetWeb.war), which references ejbs in two EJB jars, SoftBudgetEJB.jar and SignonEJB.jar. Also, SoftBudgetEJB.jar refrences ejbs in SignonEJB.jar via annotations.
I'm deploying them as separate modules instead of all in one ear on glassfish v2.
SignonEJB deploys ok and so does SoftBudgetEJB.
When I try to deploy SoftBudgetWeb I get the following error:

Unresolved <ejb-link>: signon.SignonEJB
Exception occured in J2EEC Phasejava.lang.RuntimeException: Error: Unresolved <ejb-link>: signon.SignonEJB
com.sun.enterprise.deployment.backend.IASDeploymentException: Error loading deployment descriptors for module [SoftBudgetWeb] -- Error: Unresolved <ejb-link>: signon.SignonEJB
at com.sun.enterprise.deployment.backend.Deployer.loadDescriptors(Deployer.java:390)
at com.sun.enterprise.deployment.backend.ModuleDeployer.loadDescriptors(ModuleDeployer.java:423)
at com.sun.enterprise.deployment.backend.WebModuleDeployer.deploy(WebModuleDeployer.java:157)
at com.sun.enterprise.deployment.backend.ModuleDeployer.doRequestFinish(ModuleDeployer.java:179)
at com.sun.enterprise.deployment.phasing.J2EECPhase.runPhase(J2EECPhase.java:191)
at com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)
at com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:919)
at com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentService.java:279)
at com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentService.java:788)
at com.sun.enterprise.management.deploy.DeployThread.deploy(DeployThread.java:187)
at com.sun.enterprise.management.deploy.DeployThread.run(DeployThread.java:223)
Caused by: java.lang.RuntimeException: Error: Unresolved <ejb-link>: signon.SignonEJB
at com.sun.enterprise.deployment.util.EjbBundleValidator.accept(EjbBundleValidator.java:530)
at com.sun.enterprise.deployment.WebBundleDescriptor.visit(WebBundleDescriptor.java:1406)
at com.sun.enterprise.deployment.archivist.WebArchivist.validate(WebArchivist.java:188)
at com.sun.enterprise.deployment.archivist.ApplicationArchivist.openArchive(ApplicationArchivist.java:790)
at com.sun.enterprise.deployment.archivist.ApplicationArchivist.openArchive(ApplicationArchivist.java:744)
at com.sun.enterprise.deployment.backend.Deployer.loadDescriptors(Deployer.java:349)


I'm not using annotations in my Web module and I declare references to ejbs in web.xml and sun-web.xml.
Here are my <ejb-ref>s in my web.xml:
<ejb-ref>
<ejb-ref-name>ejb/SignonEJB</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home/>
<remote>br.com.pedrasoftware.signon.ejb.SignonEJB</remote>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>ejb/BudgetManagerEJB</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home/>
<remote>br.com.pedrasoftware.softbudget.ejb.BudgetManagerEJB</remote>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>ejb/TransactionManagerEJB</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home/>
<remote>br.com.pedrasoftware.softbudget.ejb.TransactionManagerEJB</remote>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>ejb/NamedTxManagerEJB</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home/>
<remote>br.com.pedrasoftware.softbudget.ejb.NamedTxManagerEJB</remote>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>ejb/CategoryManagerEJB</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home/>
<remote>br.com.pedrasoftware.softbudget.ejb.CategoryManagerEJB</remote>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>ejb/FundManagerEJB</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home/>
<remote>br.com.pedrasoftware.softbudget.ejb.FundManagerEJB</remote>
</ejb-ref>

and in my sun-web.xml:
<ejb-ref>
<ejb-ref-name>ejb/BudgetManagerEJB</ejb-ref-name>
<jndi-name>br.com.pedrasoftware.softbudget.ejb.BudgetManagerRemote</jndi-name>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>ejb/CategoryManagerEJB</ejb-ref-name>
<jndi-name>br.com.pedrasoftware.softbudget.ejb.CategoryManagerRemote</jndi-name>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>ejb/FundManagerEJB</ejb-ref-name>
<jndi-name>br.com.pedrasoftware.softbudget.ejb.FundManagerRemote</jndi-name>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>ejb/NamedTxManagerEJB</ejb-ref-name>
<jndi-name>br.com.pedrasoftware.softbudget.ejb.NamedTxManagerRemote</jndi-name>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>ejb/SignonEJB</ejb-ref-name>
<jndi-name>br.com.pedrasoftware.signon.ejb.SignonRemote</jndi-name>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>ejb/TransactionManagerEJB</ejb-ref-name>
<jndi-name>br.com.pedrasoftware.softbudget.ejb.TransactionManagerRemote</jndi-name>
</ejb-ref>

here's how I annotate SignonEJB to call it signon.SignonEJB:
@Stateless (name="signon.SignonEJB")
public class SignonEJB implements SignonRemote, SignonLocal{


here is my annotation on an ejb in SoftBudgetEJB, which references SignonEJB:
@Stateless (name="softbudget.FundManagerEJB")
@EJB (name="ejb/SignonLocal",
beanInterface=SignonLocal.class,
beanName="signon.SignonEJB",
mappedName="br.com.signon.ejb.SignonLocal")
public class FundManagerEJB implements FundManagerRemote {
@PersistenceContext (unitName="SoftBudgetPU")
private EntityManager manager;

@EJB (name="ejb/SignonLocal")
private SignonLocal signon;

Could anyone help please?
 
Don't get me started about those stupid light bulbs.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!