How to access remote EJB 2.1 bean on JBoss 4.x from outside container
I've got a session bean, defined in an ejb-jar.xml and jboss.xml. It's defined with an ejb-name, remote and home interface and an implementation.
When I fire up JBoss and view the JNDI tree the home interface seems to be there und开发者_开发知识库er the JNDI name of the ejb-name (I've tried defining jndi-name and local-jndi-name in the ejb-jar.xml with no apparent effect). But the remote interface does not appear in the JNDI listing.
If I try and access the ejb-name with a JNDI lookup from a JUnit TestCase things get messy, presumably because I'm accessing a home interface.
Any ideas what I'm likely to be missing? Thanks in advance.
package the home and remote interfaces into a client jar and put it on the client classpath
put the
jboss-client.jar
on the client classpathput a
jndi.properties
file with the following content on the client classpathjava.naming.factory.initial=org.jnp.interfaces.NamingContextFactory java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces java.naming.provider.url=jnp://localhost:1099
perform a lookup on the JNDI name of the remote interface (something like this by default with JBoss)
Context c = new InitialContext(); return (Echo) c.lookup("EchoBean/remote"); // use myEarName/HelloWorldBean/remote in an ear
精彩评论