File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes EJB and other Java EE Technologies and the fly likes EJB 3.0 client issue Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Java » EJB and other Java EE Technologies
Bookmark "EJB 3.0 client issue" Watch "EJB 3.0 client issue" New topic

EJB 3.0 client issue

Zenikko Sugiarto
Ranch Hand

Joined: Jan 09, 2005
Posts: 58

I deployed a stateless session bean into JBOSS 4.2 as .jar, but my client couldn't seem to get a hold of this bean!

Currently my bean jar contains simply the binaries as such:

the interface has got the @Remote annotation
The session bean, has got the @Stateless annotation

I think I don't need to put any other file because of the new EJB3 @Annotations

upon deploying this app, I got this msg in JBOSS:

At which point, I deployed a separate .war containing a simple webapp, where the servlet attempts to access the bean like so:

However, I couldn't get it because I got a ClassCastException. Basically the object retrieved by the ctx.lookup is not castable to ProcessHello.

However I checked a bunch of tutorials, and they seems to be accessing them this way.
So my guess is that I must have prepared the bean .jar file incorrectly, but I couldn't work out what is wrong with it or what is missing.

Any pointer/help is much appreciated!

[ October 18, 2007: Message edited by: Zenikko Sugiarto ]
[ October 18, 2007: Message edited by: Zenikko Sugiarto ]
Zenikko Sugiarto
Ranch Hand

Joined: Jan 09, 2005
Posts: 58
Hmm, I suspected that this might be related to the way the container handled the JNDI naming. I tried this on the latest SJSAS 9.1 and it worked as I expected it to.

However shouldn't this be a standard? Anyone have used JBOSS extensively here and able to shed some light ?
Anand Kumar Singh

Joined: Oct 18, 2007
Posts: 22
Try to write your code Like This.

Bean CODE:
@RemoteBinding(jndiBinding = "MeterInfoDAORemote")
@LocalBinding(jndiBinding = "MeterInfoDAOLocal")
public class MeterInfoDAOEJB implements MeterInfoDAORemote, MeterInfoDAOLocal {

Client CODE:

public class MeterInfoEJBTest{

public MeterInfoDAOLocal meterInfoLocal;

public static void main(String[] args) {
try {
Properties properties = new Properties();
"=org.jboss.naming rg.jnp.interfaces");
properties.put("java.naming.provider.url", "jnp://localhost:1099");

Context ctx = new InitialContext(properties);
meterInfoLocal= (MeterInfoDAOLocal) ctx.lookup("MeterInfoDAOLocal");

// call business method using meterInfoLocal object

} catch (NamingException ne) {
// log.error("Naming Exception Encountered : "+ne);


OCUP Fundamental,
OCUP Intermediate,
OCUP Advanced,
IBM Certified Solution Designer - Object Oriented Analysis and Design, vUML 2
Zenikko Sugiarto
Ranch Hand

Joined: Jan 09, 2005
Posts: 58
Thanks Kumar, I'm trying it right now, will post update.

I'm guessing the code you gave for the client is meant for a standalone client running outside the server (as you put those settings int the Properties).

Anyway I'll give it a go, as I have installed both server I want to write code that can deploy for both...
Anand Kumar Singh

Joined: Oct 18, 2007
Posts: 22
You can use the same code for remote call in your server, if any problam please let me know.
Zenikko Sugiarto
Ranch Hand

Joined: Jan 09, 2005
Posts: 58
Kumar, the code works, but only with JBOSS. It won't work with Glassfish due to library dependency?

Anyway I made the switch to Glassfish as I found that it is easier to work with. Thanks a lot for your help anyway I am trying something else now...
I agree. Here's the link:
subject: EJB 3.0 client issue
Similar Threads
Problem with EJB 3. Name not bound error
Database changes vanish after jboss closed
using EJB annotation
Websphere Community Edition 2.0 - EJB lookup ISSUE
Session bean not bound