Does Jboss 6.1.0 support ejb 2.1 ?
raviananda Dec 31, 2013 7:38 AM
Hi All,
We are migrating the weblogic server to jboss 6.1.0 server,
In process of migration, we are also migrating the ejb v 2.1.
So, I tried to create the sample ejb 2.1 project and try to look up, but I'M getting the below exception
INFO: EJBCLIENT000013: Successful version handshake completed for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@4e280c, receiver=Remoting connection EJB receiver [connection=Remoting connection <bb7759>,channel=jboss.ejb,nodename=xin009cdaa81715]} on channel Channel ID 95d56691 (outbound) of Remoting connection 009e29fb to localhost/127.0.0.1:4447
javax.naming.NameNotFoundException: Hello -- service jboss.naming.context.java.jboss.exported.Hello
at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:103).
Please suggest me on this, Does Jboss 6.1.0 support the ejb 2.1?
if Yes, Please find the steps below for creating the ejb project and doing lookup.
stp1 : created the ejb2.1 project, and created the home and remote object, also added the entry in the ejb-jar.xml
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>Hello</ejb-name>
<home>com.ejb.HelloHome</home>
<remote>com.ejb.HelloObject</remote>
<ejb-class>com.ejb.HelloBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>Hello</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
<ejb-client-jar>ExampleEjb.jar</ejb-client-jar>
</ejb-jar>
stp2: added the jboss.xml to the meta-inf folder
<jboss>
<enterprise-beans>
<session>
<ejb-name>Hello</ejb-name>
<jndi-name>Hello</jndi-name>
<!-- <local-jndi-name>com.ejb.HelloBean</local-jndi-name> -->
<method-attributes>
</method-attributes>
</session>
</enterprise-beans>
<resource-managers>
</resource-managers>
</jboss>
stp3: created the .jar and deplyed on the jboss admin console.
stp4: created the ejbclient project and tried to look up the deployed ejb using the bean class as show below:
public class HelloWorld {
public static void main( String args[]) {
try{
Properties env = new Properties();
//The JNDI properties you set depend
//on which server you are using.
//These properties are for the Remote Server.
env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory" );
env.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jboss.naming.remote.client");
env.put(Context.PROVIDER_URL, "remote://localhost:4447");
env.put("jboss.naming.client.ejb.context", true);
/*env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
env.put(Context.PROVIDER_URL,"localhost:1099");
env.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");*/
//Now use those properties to create
//a JNDI InitialContext with the server.
InitialContext ctx = new InitialContext( env );
//Lookup the bean using it's deployment id
Object obj = ctx.lookup("Hello");
//Be good and use RMI remote object narrowing
//as required by the EJB specification.
HelloHome beanhome = (HelloHome)
PortableRemoteObject.narrow(obj,HelloHome.class);
HelloRemote bean = (HelloRemote)beanhome.create();
// calling the business method of remote interface
bean.sayHello();
But I'M getting the exception as below :
INFO: EJBCLIENT000013: Successful version handshake completed for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@4e280c, receiver=Remoting connection EJB receiver [connection=Remoting connection <bb7759>,channel=jboss.ejb,nodename=xin009cdaa81715]} on channel Channel ID 95d56691 (outbound) of Remoting connection 009e29fb to localhost/127.0.0.1:4447
javax.naming.NameNotFoundException: Hello -- service jboss.naming.context.java.jboss.exported.Hello
at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:103)
Please suggest.
Thanks
Ravi