This week's book giveaway is in the OCPJP forum.
We're giving away four copies of OCA/OCP Java SE 7 Programmer I & II Study Guide and have Kathy Sierra & Bert Bates on-line!
See this thread for details.
The moose likes EJB and other Java EE Technologies and the fly likes JBoss5.1 EJB3 JSF1.2 integration problem Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of OCA/OCP Java SE 7 Programmer I & II Study Guide this week in the OCPJP forum!
JavaRanch » Java Forums » Java » EJB and other Java EE Technologies
Bookmark "JBoss5.1 EJB3 JSF1.2 integration problem" Watch "JBoss5.1 EJB3 JSF1.2 integration problem" New topic

JBoss5.1 EJB3 JSF1.2 integration problem

Tudor Raneti
Ranch Hand

Joined: Nov 29, 2009
Posts: 145
I'm following simple examples like this one:

But i can't get the stateless bean from the EJB module i've successfully deployed on JBoss no matter what i try.
I get:

root cause

i tried with @EJB,
w/ and w/o @EJB mapped name,
w/ and w/o ejb-jar.xml and jboss.xml (which i doubt i configured properly anyway but the example don't say anything about them,
and with new InitialContext().lookup(...) too

at best i got a:
javax.naming.NamingException: Could not dereference object [Root exception is ja
at org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure(NamingC

when i probably managed to integrate it but run into another problem.

some example code:

The backing bean - from which i try to display something in a JSF/JSP page and can't:

The interface

The bean

The entity
Deriko Prata

Joined: Dec 16, 2010
Posts: 21
Hi there, to get a reference to the same ejb, use sessionContext.getBusinessObject(Greeter.class)(inject sessionContext with @Resource) instead of doing InitialContext ctx = new InitialContext(); greeter = (Greeter) ctx.lookup("GreeterBean/remote");

If it still doesn´t work, please put the full stack trace
Tudor Raneti
Ranch Hand

Joined: Nov 29, 2009
Posts: 145
Hello, sorry I've been out during weekend for I have no internet at home momentarily.

Injecting a @Resource would probably work on JBoss as it is one of the solutions I also read about (i will give it a try and update when i test it on JBoss - although i have doubts, since @Resource injection is in the same category as @EJB)

I will describe the solution I found, although JBoss complains about it.
(I will update here with the WARN message after I apply the solution)

The situation was that when i try to inject using @EJB annotation, JBoss gives ERROR:
Caused by: java.lang.RuntimeException: java.lang.IllegalStateException: Resolution should not happen via injection container

But when i get the context like this in

Note i added getInitialContext() and commented out the @EJB injection

It works, although in this JBoss instalation / example it also gives a bizarre error that doesn't seem to affect anything:

[STDERR] javax.naming.NameNotFoundException: GreeterBean not bound

Tudor Raneti
Ranch Hand

Joined: Nov 29, 2009
Posts: 145
I found the problem.
Deployed and exploded EAR directory names mustn't end in .ear (Eclipse was deploying like that) - as soon as i renamed w/o the .ear it started working.

I'll leave it unresolved for the problem with @EJB annotation that won't work
Tudor Raneti
Ranch Hand

Joined: Nov 29, 2009
Posts: 145
Oops, double post
Jaikiran Pai

Joined: Jul 20, 2005
Posts: 10240

The NameNotFoundException is most likely because you are using the wrong JNDI name. While deploying as a .ear the (default) JNDI name of the bean is different from what you use when you deploy as a .jar. See this for more info.

I guess when you removed the .ear extension, it probably is considering it to be a .jar (which is a bit odd actually). Anyway, rename it back to .ear (if it indeed is a .ear file) and then change the lookup code to use the correct JNDI name.

[My Blog] [JavaRanch Journal]
Tudor Raneti
Ranch Hand

Joined: Nov 29, 2009
Posts: 145
Thank you. This also fixed the @EJB "Resolution should not happen via injection

container" problem. Here it sais more:

I did go over that one bit of info but I didn't couple it with this:

which can actually sit in the the

EAR_project_name.ear/EJB_project_name.jar/META-INF/, while the

WAR_project_name.war references the EJB_project_name.jar (Eclipse -> build path

->projects -> add)

... which isn't actually needed because JBoss provides it by default ...
Glad it's finally sorted out.
It is sorta covered in the JavaRanch Style Guide.
subject: JBoss5.1 EJB3 JSF1.2 integration problem