Link to home
Start Free TrialLog in
Avatar of savita_gomatam
savita_gomatam

asked on

Getting exception while runningthe client program. Root exception is javax.naming.NameNotFoundException...

Hi,

I deployed a simple ejb application on to the weblogic server but when I run the client program, I am getting the following error

before lookup
Exception in thread "main" javax.naming.NameNotFoundException: Unable to resolve
 'HelloHome'. Resolved '' [Root exception is javax.naming.NameNotFoundException:
 Unable to resolve 'HelloHome'. Resolved '']; remaining name 'HelloHome'
        at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:191)
        at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef
.java:315)
        at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef
.java:250)
        at weblogic.jndi.internal.ServerNamingNode_910_WLStub.lookup(Unknown Sou
rce)
        at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:374)
        at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:362)
        at javax.naming.InitialContext.lookup(Unknown Source)
        at examples.HelloClient.main(HelloClient.java:23)
Caused by: javax.naming.NameNotFoundException: Unable to resolve 'HelloHome'. Re
solved ''
        at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(Basic
NamingNode.java:1123)
        at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.jav
a:250)
        at weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.j
ava:171)
        at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:20
4)
        at weblogic.jndi.internal.RootNamingNode_WLSkel.invoke(Unknown Source)
        at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:517)
        at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef
.java:224)
        at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:407)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:363)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
147)
        at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
a:403)
        at weblogic.rmi.internal.BasicServerRef.access$300(BasicServerRef.java:5
6)
        at weblogic.rmi.internal.BasicServerRef$BasicExecuteRequest.run(BasicSer
verRef.java:934)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)
-------------------------------------------------------------        
       
        I am giving my client program HelloClient.java and deployment descriptors.
       
        package examples;
      
      import javax.naming.Context;
      import javax.naming.InitialContext;
      import java.util.Properties;
      
      public class HelloClient {
      
            public static void main(String[] args) throws Exception {
      
                  //Properties prop = System.getProperties();
      
      
                  Properties prop = new Properties();
                  prop.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
                  prop.put(Context.PROVIDER_URL,"t3://localhost:7001");
      
      
      
                  Context ctx = new InitialContext(prop);
                  System.out.println("before lookup");
      
                  Object obj = ctx.lookup("HelloHome");
                  System.out.println("after lookup");
      
                  HelloHome home = (HelloHome) javax.rmi.PortableRemoteObject.narrow(obj, HelloHome.class);
      
                  Hello hello = home.create();
      
                  System.out.println(hello.hello());
      
                  hello.remove();
            }
      
}

------------------------------
my xml files

ejb-jar.xml


<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">

<ejb-jar>
  <enterprise-beans>
    <session>
      <ejb-name>Hello</ejb-name>
      <home>examples.HelloHome</home>
      <remote>examples.Hello</remote>
      <local-home>examples.HelloLocalHome</local-home>
      <local>examples.HelloLocal</local>
      <ejb-class>examples.HelloBean</ejb-class>
      <session-type>Stateless</session-type>
      <transaction-type>Container</transaction-type>
    </session>
  </enterprise-beans>
</ejb-jar>


weblogic-ejb-jar.xml

<!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB//EN" "http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.dtd">
<weblogic-ejb-jar>
  <weblogic-enterprise-bean>
    <ejb-name>Hello</ejb-name>
       <jndi-name>HelloHome</jndi-name>
  </weblogic-enterprise-bean>
</weblogic-ejb-jar>
--------------------------------------
After compiling the java files, I created the jar file that includes xml files and classfiles.  Then using weblogic.ejbc I created the jar file
which I deployed in the weblogic server. I used weblogic admin console to deploy.

Until this point there was no error but when I run the client, I get the above said error.

My ejb files structure is as follows

my directory/java files
            /META-INF/ejb-jar.xml
                     /weblogic-ejb-jar.xml
            /examples/class files
           
I am new to weblogic. I will be thankful if anybody can tell me where did I go wrong and help me out in solving the problem.

Thanks in Advance.

Regards
Savitha

ASKER CERTIFIED SOLUTION
Avatar of ECollin
ECollin

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of savita_gomatam
savita_gomatam

ASKER

Hi,

Thanks for the response.
Yes. It is deployed correctly.  Now it is working.  I didn't start the ejb in the weblogic server.