Distributed destination javax.naming.NameNotFoundException

Hi, I have a JMS client (java application) that is trying to publish a message to a JMS queue. This queue is a distributed destination that resides on a cluster with 2 servers.
          When I try to lookup the queue name with
          Queue queue_final = (Queue) ctx.lookup(queueName);
          I get the following exception,
          'LAPPLoanStatusJMSExcep' Resolved [Root exception is javax.naming.NameNotFoundException: Unable to resolve 'LAPPLoanStatusJMSExcep' Resolved ]; remaining name
          I can see this queue name under Distributed destinations and under the 2 servers.

Did you manage to resolve this issue. I appear to be running into the same problem. It only occurs when i am trying to get hold of the queue. I have no problems when i am looking up the connection factory.
          regards
          kodjo

Similar Messages

  • Javax.naming.NameNotFoundException while Message driven bean

    I am adding a message driven bean in to my EJB application and trying
    to deploy it in the WebLogic 6.0 server.
    Now please let me know is there any other step i am missing.
    1) This is what i have added in my ejb-jar.xml
    <enterprise-beans>
         <message-driven>
              <description>no description</description>
              <display-name>ActivatorBean</display-name>
              <ejb-name>ActivatorBean</ejb-name>
              <ejb-class>com.savvion.bizlogic.server.ActivatorBean</ejb-class>
              <transaction-type>Container</transaction-type>
              <message-driven-destination>
                   <jms-destination-type>javax.jms.Queue</jms-destination-type>
              </message-driven-destination>
              <security-identity>
                   <description/>
                   <run-as-specified-identity>
                   <description/>
                   <role-name/>
                   </run-as-specified-identity>
              </security-identity>
         </message-driven>
    2) I am adding this is in the weblogic-ejb.xml
    <weblogic-enterprise-bean>
         <ejb-name>ActivatorBean</ejb-name>
         <message-driven-descriptor>
                             <destination-jndi-name>MyMessageQueueFactory</destination-jndi-name>
         </message-driven-descriptor>
         <transaction-descriptor>
              <trans-timeout-seconds>1200</trans-timeout-seconds>
         </transaction-descriptor>
         <jndi-name>MessageQueue</jndi-name>
         </weblogic-enterprise-bean>
    anything else which needs to added in WebLogic-ejb.xml or in config.xml
    because as per the following error message there should be some
    entry in config.xml.
    onemore thing i am little bit confused in
    <destination-jndi-name>MyMessageQueueFactory</destination-jndi-name>
    and
    <jndi-name>MessageQueue</jndi-name>
    and when i deploed this in WebLogic got this error message on the
    prompt
    <Error> <J2EE> <Error deploying EJB Component : LEngine
    weblogic.ejb20.EJBDeploymentException: Error deploying Message-Driven
    Bean,
    couldn't find Queue 'MyMessageQueueFactory'. Make sure it was declared
    in your config.xml.
    ; nested exception is:
    javax.naming.NameNotFoundException: Unable to resolve MyMessageQueueFactory.
    Resolved: '' Unresolved:'MyMessageQueueFactory' ; remaining name
    javax.naming.NameNotFoundException: Unable to resolve MyMessageQueueFactory.
    Reso
    lved: '' Unresolved:'MyMessageQueueFactory' ; remaining name ''
    <<no stack trace available>>
    >
    <Error> <J2EE> <Error deploying application
    WFEngine: Could not deploy: 'xyz.jar'
    Possible reasons include:
    1. The bean or an interface class has been modified but
    the deployment descriptor has not been updated
    2. The database mappings in the deployment descriptor do not
    match the database definition
    3. The jar file is not a valid jar file
    4. The jar file does not contain a valid bean>
    Thanks
    Naresh

    I am adding a message driven bean in to my EJB application and trying
    to deploy it in the WebLogic 6.0 server.
    Now please let me know is there any other step i am missing.
    1) This is what i have added in my ejb-jar.xml
    <enterprise-beans>
         <message-driven>
              <description>no description</description>
              <display-name>ActivatorBean</display-name>
              <ejb-name>ActivatorBean</ejb-name>
              <ejb-class>com.savvion.bizlogic.server.ActivatorBean</ejb-class>
              <transaction-type>Container</transaction-type>
              <message-driven-destination>
                   <jms-destination-type>javax.jms.Queue</jms-destination-type>
              </message-driven-destination>
              <security-identity>
                   <description/>
                   <run-as-specified-identity>
                   <description/>
                   <role-name/>
                   </run-as-specified-identity>
              </security-identity>
         </message-driven>
    2) I am adding this is in the weblogic-ejb.xml
    <weblogic-enterprise-bean>
         <ejb-name>ActivatorBean</ejb-name>
         <message-driven-descriptor>
                             <destination-jndi-name>MyMessageQueueFactory</destination-jndi-name>
         </message-driven-descriptor>
         <transaction-descriptor>
              <trans-timeout-seconds>1200</trans-timeout-seconds>
         </transaction-descriptor>
         <jndi-name>MessageQueue</jndi-name>
         </weblogic-enterprise-bean>
    anything else which needs to added in WebLogic-ejb.xml or in config.xml
    because as per the following error message there should be some
    entry in config.xml.
    onemore thing i am little bit confused in
    <destination-jndi-name>MyMessageQueueFactory</destination-jndi-name>
    and
    <jndi-name>MessageQueue</jndi-name>
    and when i deploed this in WebLogic got this error message on the
    prompt
    <Error> <J2EE> <Error deploying EJB Component : LEngine
    weblogic.ejb20.EJBDeploymentException: Error deploying Message-Driven
    Bean,
    couldn't find Queue 'MyMessageQueueFactory'. Make sure it was declared
    in your config.xml.
    ; nested exception is:
    javax.naming.NameNotFoundException: Unable to resolve MyMessageQueueFactory.
    Resolved: '' Unresolved:'MyMessageQueueFactory' ; remaining name
    javax.naming.NameNotFoundException: Unable to resolve MyMessageQueueFactory.
    Reso
    lved: '' Unresolved:'MyMessageQueueFactory' ; remaining name ''
    <<no stack trace available>>
    >
    <Error> <J2EE> <Error deploying application
    WFEngine: Could not deploy: 'xyz.jar'
    Possible reasons include:
    1. The bean or an interface class has been modified but
    the deployment descriptor has not been updated
    2. The database mappings in the deployment descriptor do not
    match the database definition
    3. The jar file is not a valid jar file
    4. The jar file does not contain a valid bean>
    Thanks
    Naresh

  • Help needed - javax.naming.NameNotFoundException:

    Hi,
    I am writing a stateless local session bean that is invoked within an EJB,
    it deploys fine,
    console
    16:52:58,719 INFO [EjbModule] Deploying LocalRuleEngine
    but when I run it I get NameNotFoundException,
    javax.naming.NameNotFoundException: LocalRuleEngine not bound
    at org.jnp.server.NamingServer.getBinding(NamingServer.java:491)
    at org.jnp.server.NamingServer.getBinding(NamingServer.java:499)
    at org.jnp.server.NamingServer.getObject(NamingServer.java:505)
    at org.jnp.server.NamingServer.lookup(NamingServer.java:278)
    at sun.reflect.GeneratedMethodAccessor69.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    this is mapping files,
    jboss.xml,
    <?xml version="1.0"?>
    <jboss>
        <enterprise-beans>
            <message-driven>
                <ejb-name>DistributionManager</ejb-name>
                <destination-jndi-name>queue/dr</destination-jndi-name>
                <resource-ref>
                    <res-ref-name>jms/QCF</res-ref-name>
                    <jndi-name>ConnectionFactory</jndi-name>
                </resource-ref>
            </message-driven>
              <session>
                   <ejb-name>LocalRuleEngine</ejb-name>
                   <jndi-name>ejb/LocalRuleEngine</jndi-name>
              </session>
        </enterprise-beans>
    </jboss>ejb-jar.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!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>
         <message-driven>
               <ejb-name>DistributionManager</ejb-name>
               <ejb-class>com.test.DataDistributionManager</ejb-class>
               <transaction-type>Container</transaction-type>
               <acknowledge-mode>AUTO_ACKNOWLEDGE</acknowledge-mode>
               <message-driven-destination>
                 <destination-type>javax.jms.Queue</destination-type>
               </message-driven-destination>
                <ejb-local-ref>
                     <ejb-ref-name>ejb/LocalRuleEngine</ejb-ref-name>
                  <ejb-ref-type>Session</ejb-ref-type>
                  <local-home>com.test.LocalRuleEngineHome</local-home>
                  <local>com.test.LocalRuleEngine</local>
                  <ejb-link>LocalRuleEngine</ejb-link>
                 </ejb-local-ref>
               <resource-ref>
                 <res-ref-name>jms/QCF</res-ref-name>
                 <res-type>javax.jms.QueueConnectionFactory</res-type>
                 <res-auth>Container</res-auth>
               </resource-ref>
        </message-driven>
        <session>
                  <ejb-name>LocalRuleEngine</ejb-name>
                   <local-home>com.test.LocalRuleEngineHome</local-home>
                  <local>com.test.LocalRuleEngine</local>
                  <ejb-class>com.test.RuleEngineBean</ejb-class>
                  <session-type>Stateless</session-type>
                  <transaction-type>Container</transaction-type>
        </session>
      </enterprise-beans>
    </ejb-jar>this is my local home interface
    package com.test;
    import javax.ejb.CreateException;
    import javax.ejb.EJBLocalHome;
    public interface LocalRuleEngineHome extends EJBLocalHome{
         public LocalRuleEngine create() throws CreateException;
    }this is my local interface
    package com.test;
    import java.util.List;
    import javax.ejb.EJBLocalObject;
    import com.raytheon.jetts.domain.DomainClass;
    import com.raytheon.jetts.domain.DomainKey;
    public interface LocalRuleEngine extends EJBLocalObject {
         public List findMatchingRules(DomainClass itemToDistribute);
         public List createRules(DomainKey domainKey, List<Address> addresses);
         public ImAdapter getImAdapter();
         public void setImAdapter(ImAdapter imAdapter);
         public List getAddressesFromRules(List<DistributionRule> distributionRules);
         public void addRule(DistributionRule distributionRule);
         public void removeRule(DomainKey domainKey);
         public String testReturn();
    }this is my bean,
    package com.test;
    import java.rmi.RemoteException;
    import java.util.List;
    import javax.ejb.CreateException;
    import javax.ejb.EJBException;
    import javax.ejb.EJBLocalHome;
    import javax.ejb.EJBLocalObject;
    import javax.ejb.RemoveException;
    import javax.ejb.SessionBean;
    import javax.ejb.SessionContext;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import com.raytheon.jetts.domain.DomainClass;
    import com.raytheon.jetts.domain.DomainKey;
    public class RuleEngineBean implements SessionBean, LocalRuleEngine{
         private static Log log = LogFactory.getLog(DataDistributionManager.class);
         private LocalRuleEngine engine;
         private LocalRuleEngineHome localHome;
         public RuleEngineBean(){}
         public List findMatchingRules(DomainClass itemToDistribute){
              List list = null;
              return list;
         public String testReturn(){
              return new String("is home time");
         public List createRules(DomainKey domainKey, List<Address> addresses){
              List list = null;
              return list;
         public ImAdapter getImAdapter(){
              ImAdapter imAdapter = null;
              return imAdapter;
         public void setImAdapter(ImAdapter imAdapter){
         public List getAddressesFromRules(List<DistributionRule> distributionRules){
              List list = null;
              return list;
         public void addRule(DistributionRule distributionRule){
         public void removeRule(DomainKey domainKey){
         public void ejbCreate(String info){}
         public void setSessionContext(SessionContext context){}
         public void remove(){}
         public void ejbActivate(){}
         public void ejbPassivate(){}
         public void ejbRemove(){}
         public void ejbCreate(){}
         public boolean isIdentical(EJBLocalObject obj)throws EJBException{
              return true;
         public EJBLocalHome getEJBLocalHome(){
              return localHome;
         public Object getPrimaryKey()throws EJBException{
              return new Object();
    }Thanks for any help on this,
    Jp.

    sorry about that,
    I'm doing this,
    InitialContext ctx = new InitialContext();
                  LocalRuleEngineHome localRuleEngineHome  = (LocalRuleEngineHome)ctx.lookup("ejb/LocalRuleEngine");
                 //localRuleEngineHome = (LocalRuleEngineHome)PortableRemoteObject.narrow(objref,  LocalRuleEngineHome.class);
                 LocalRuleEngine lre = localRuleEngineHome.create();
                 log.info(lre.testReturn());

  • Failed:javax.naming.NameNotFoundException: QueueConnectionFactory

    hi all
    I have the problem how to solve this problem? when i was lookup through jndiname it was error but i declared it in a descriptor.
    Error :
    init:
    deps-jar:
    compile-single:
    run-single:
    Jndi lookup failed:javax.naming.NameNotFoundException: QueueConnectionFactory not found
    Java Result: 1
    BUILD SUCCESSFUL (total time: 4 seconds)
    Here is the code...
    That is Main....
    public static void main(String[] args) {
    Context jndiContext = null;
    ConnectionFactory connectionfactory = null;
    Connection connection = null;
    Session session = null;
    Destination destination = null;
    MessageProducer messageProducer = null;
    TextMessage message = null;
    final int NUM_MSGS = 3;
    try{
    jndiContext = new InitialContext();
    }catch(NamingException ex){
    System.err.println("Could not Create JNDI.");
    System.exit(1);
    try
    connectionfactory = (ConnectionFactory)jndiContext.lookup("jms/QueueConnectionFactory");
    destination = (Queue)jndiContext.lookup("jms/SimpleMessageBean");
    }catch(NamingException e){
    System.err.println("Jndi lookup failed:" + e.toString());
    System.exit(1);
    try{
    connection = connectionfactory.createConnection();
    session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    messageProducer = session.createProducer(destination);
    message = session.createTextMessage();
    for(int i=0; i < NUM_MSGS; i++){
    message.setText("This is a message " + (i+1));
    System.out.println("Sending message " + message.getText());
    messageProducer.send(message);
    }catch(javax.jms.JMSException e){
    System.err.println("Exception occured: " + e.toString());
    }finally
    if(connection == null){
    try{
    connection.close();
    }catch(JMSException e){                    
    System.exit(0);
    In Message Bean....
    @MessageDriven(activationConfig = {
    @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
    @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
    @ActivationConfigProperty(propertyName = "connectionFactoryJndiName", propertyValue="jms/QueueConnectionFactory")
    public class SimpleMessage implements MessageListener {
    public static final Logger logger = Logger.getLogger("SimpleMessage");
    /** Creates a new instance of SimpleMessage */
    public SimpleMessage() {
    public void onMessage(Message message){
    TextMessage msg = null;
    try{
    if(message instanceof TextMessage)
    msg = (TextMessage)message;
    logger.info("Message Bean: Message Received:" + msg.toString());
    }else{
    logger.warning("Wrong Type:" + msg.getClass().getName());
    }catch(Throwable te){
    te.printStackTrace();
    In descriptor...
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE sun-ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 EJB 3.0//EN" "http://www.sun.com/software/appserver/dtds/sun-ejb-jar_3_0-0.dtd">
    <sun-ejb-jar>
    <enterprise-beans>
    <name>SimpleMessage</name>
    <ejb>
    <ejb-name>SimpleMessage</ejb-name>
    <mdb-connection-factory>
    <jndi-name>jms/QueueConnectionFactory</jndi-name>
    </mdb-connection-factory>
    </ejb>
    <cmp-resource>
    <jndi-name>jms/SimpleMessage</jndi-name>
    </cmp-resource>
    </enterprise-beans>
    </sun-ejb-jar>
    Thank you for reply..
    Chris

    Connection Factories and Queues are global resources that must be created through either
    the admin console or the asadmin CLI command. Those global resources are then referred to
    by your application code. Please see the JMS portion of the Java EE 5 tutorial :
    http://java.sun.com/javaee/5/docs/tutorial/doc/
    --ken                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Javax.naming.NameNotFoundException for foreign JMS Connection factory

    I have a foreign jms server configured and when I try and test it I get a Name not found exception.
              javax.naming.NameNotFoundException: Unable to resolve 'jms.SSLQueueConnectionFactory' Resolved jms [Root exception is javax.naming.NameNotFoundException: Unable to resolve 'jms.SSLQueueConnectionFactory' Resolved jms]; remaining name 'SSLQueueConnectionFactory'
              The config.xml looks ok
              <ForeignJMSServer
              ConnectionURL="ssl://eaid1-jms.ges.symantec.com:7243"
              JNDIProperties="" Name="JMS Proxy Dev" Targets="TeamWorksServer">
              <ForeignJMSConnectionFactory
              LocalJNDIName="jms.SSLQueueConnectionFactory"
              Name="MyForeign JMS Connection Factory"
              PasswordEncrypted="{3DES}Es94ikW1TZzBFyDp+3/gktRtDaHWI6j/"
              RemoteJNDIName="SSLQueueConnectionFactory" Username="weblogicUser"/>
              <ForeignJMSDestination LocalJNDIName="jms.WEBLOGIC.TEST.QUEUE"
              Name="MyForeign JMS Destination" RemoteJNDIName="WEBLOGIC.TEST.QUEUE"/>
              </ForeignJMSServer>
              The code i took from the QueueSend example
              package com.symantec.utils.jms;
              import java.io.BufferedReader;
              import java.io.IOException;
              import java.io.InputStreamReader;
              import java.util.Hashtable;
              import javax.jms.*;
              import javax.naming.Context;
              import javax.naming.InitialContext;
              import javax.naming.NamingException;
              /** This example shows how to establish a connection
              * and send messages to the JMS queue. The classes in this
              * package operate on the same JMS queue. Run the classes together to
              * witness messages being sent and received, and to browse the queue
              * for messages. The class is used to send messages to the queue.
              * @author Copyright (c) 1999-2006 by BEA Systems, Inc. All Rights Reserved.
              public class QueueSend
              // Defines the JNDI context factory.
              public final static String JNDI_FACTORY="weblogic.jndi.WLInitialContextFactory";
              // Defines the JMS context factory.
              public final static String JMS_FACTORY="jms.SSLQueueConnectionFactory";
              // Defines the queue.
              public final static String QUEUE="WEBLOGIC.TEST.QUEUE";
              private QueueConnectionFactory qconFactory;
              private QueueConnection qcon;
              private QueueSession qsession;
              private QueueSender qsender;
              private Queue queue;
              private TextMessage msg;
              * Creates all the necessary objects for sending
              * messages to a JMS queue.
              * @param ctx JNDI initial context
              * @param queueName name of queue
              * @exception NamingException if operation cannot be performed
              * @exception JMSException if JMS fails to initialize due to internal error
              public void init(Context ctx, String queueName)
              throws NamingException, JMSException
              qconFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY);
              qcon = qconFactory.createQueueConnection();
              qsession = qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
              queue = (Queue) ctx.lookup(queueName);
              qsender = qsession.createSender(queue);
              msg = qsession.createTextMessage();
              qcon.start();
              * Sends a message to a JMS queue.
              * @param message message to be sent
              * @exception JMSException if JMS fails to send message due to internal error
              public void send(String message) throws JMSException {
              msg.setText(message);
              qsender.send(msg);
              * Closes JMS objects.
              * @exception JMSException if JMS fails to close objects due to internal error
              public void close() throws JMSException {
              qsender.close();
              qsession.close();
              qcon.close();
              private static void readAndSend(QueueSend qs)throws IOException, JMSException
                   BufferedReader msgStream = new BufferedReader(new InputStreamReader(System.in));
              String line=null;
              boolean quitNow = false;
              do {
              System.out.print("Enter message (\"quit\" to quit): \n");
              line = msgStream.readLine();
              if (line != null && line.trim().length() != 0) {
              qs.send(line);
              System.out.println("JMS Message Sent: "+line+"\n");
              quitNow = line.equalsIgnoreCase("quit");
              } while (! quitNow);
              private static InitialContext getInitialContext(String url)
              throws NamingException
              Hashtable env = new Hashtable();
              env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
              env.put(Context.PROVIDER_URL, url);
              return new InitialContext(env);
              /** main() method.
              * @param args WebLogic Server URL
              * @exception Exception if operation fails
              public static void main(String[] args) throws Exception
              InitialContext ic = getInitialContext("t3://tus1bpmappdin01.ges.symantec.com:7501");
              QueueSend qs = new QueueSend();
              qs.init(ic, QUEUE);
              readAndSend(qs);
              qs.close();
              Any suggestions would be appreciated
              Regards

    I have a foreign jms server configured and when I try and test it I get a Name not found exception.
              javax.naming.NameNotFoundException: Unable to resolve 'jms.SSLQueueConnectionFactory' Resolved jms [Root exception is javax.naming.NameNotFoundException: Unable to resolve 'jms.SSLQueueConnectionFactory' Resolved jms]; remaining name 'SSLQueueConnectionFactory'
              The config.xml looks ok
              <ForeignJMSServer
              ConnectionURL="ssl://eaid1-jms.ges.symantec.com:7243"
              JNDIProperties="" Name="JMS Proxy Dev" Targets="TeamWorksServer">
              <ForeignJMSConnectionFactory
              LocalJNDIName="jms.SSLQueueConnectionFactory"
              Name="MyForeign JMS Connection Factory"
              PasswordEncrypted="{3DES}Es94ikW1TZzBFyDp+3/gktRtDaHWI6j/"
              RemoteJNDIName="SSLQueueConnectionFactory" Username="weblogicUser"/>
              <ForeignJMSDestination LocalJNDIName="jms.WEBLOGIC.TEST.QUEUE"
              Name="MyForeign JMS Destination" RemoteJNDIName="WEBLOGIC.TEST.QUEUE"/>
              </ForeignJMSServer>
              The code i took from the QueueSend example
              package com.symantec.utils.jms;
              import java.io.BufferedReader;
              import java.io.IOException;
              import java.io.InputStreamReader;
              import java.util.Hashtable;
              import javax.jms.*;
              import javax.naming.Context;
              import javax.naming.InitialContext;
              import javax.naming.NamingException;
              /** This example shows how to establish a connection
              * and send messages to the JMS queue. The classes in this
              * package operate on the same JMS queue. Run the classes together to
              * witness messages being sent and received, and to browse the queue
              * for messages. The class is used to send messages to the queue.
              * @author Copyright (c) 1999-2006 by BEA Systems, Inc. All Rights Reserved.
              public class QueueSend
              // Defines the JNDI context factory.
              public final static String JNDI_FACTORY="weblogic.jndi.WLInitialContextFactory";
              // Defines the JMS context factory.
              public final static String JMS_FACTORY="jms.SSLQueueConnectionFactory";
              // Defines the queue.
              public final static String QUEUE="WEBLOGIC.TEST.QUEUE";
              private QueueConnectionFactory qconFactory;
              private QueueConnection qcon;
              private QueueSession qsession;
              private QueueSender qsender;
              private Queue queue;
              private TextMessage msg;
              * Creates all the necessary objects for sending
              * messages to a JMS queue.
              * @param ctx JNDI initial context
              * @param queueName name of queue
              * @exception NamingException if operation cannot be performed
              * @exception JMSException if JMS fails to initialize due to internal error
              public void init(Context ctx, String queueName)
              throws NamingException, JMSException
              qconFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY);
              qcon = qconFactory.createQueueConnection();
              qsession = qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
              queue = (Queue) ctx.lookup(queueName);
              qsender = qsession.createSender(queue);
              msg = qsession.createTextMessage();
              qcon.start();
              * Sends a message to a JMS queue.
              * @param message message to be sent
              * @exception JMSException if JMS fails to send message due to internal error
              public void send(String message) throws JMSException {
              msg.setText(message);
              qsender.send(msg);
              * Closes JMS objects.
              * @exception JMSException if JMS fails to close objects due to internal error
              public void close() throws JMSException {
              qsender.close();
              qsession.close();
              qcon.close();
              private static void readAndSend(QueueSend qs)throws IOException, JMSException
                   BufferedReader msgStream = new BufferedReader(new InputStreamReader(System.in));
              String line=null;
              boolean quitNow = false;
              do {
              System.out.print("Enter message (\"quit\" to quit): \n");
              line = msgStream.readLine();
              if (line != null && line.trim().length() != 0) {
              qs.send(line);
              System.out.println("JMS Message Sent: "+line+"\n");
              quitNow = line.equalsIgnoreCase("quit");
              } while (! quitNow);
              private static InitialContext getInitialContext(String url)
              throws NamingException
              Hashtable env = new Hashtable();
              env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
              env.put(Context.PROVIDER_URL, url);
              return new InitialContext(env);
              /** main() method.
              * @param args WebLogic Server URL
              * @exception Exception if operation fails
              public static void main(String[] args) throws Exception
              InitialContext ic = getInitialContext("t3://tus1bpmappdin01.ges.symantec.com:7501");
              QueueSend qs = new QueueSend();
              qs.init(ic, QUEUE);
              readAndSend(qs);
              qs.close();
              Any suggestions would be appreciated
              Regards

  • Javax.naming.NameNotFoundException using Spring  with EJB3 and  Weblogic 10

    I'm deploying an EAR application from Weblogic 10 Administration Console... This
    EAR has two modules: an EJB3 module, and a Web module. The deploy process finish,
    but the status of the application is "Failed"... then in the log I get the
    following error:
    User defined listener
    org.springframework.web.context.ContextLoaderListener failed:
    org.springframework.beans.factory.BeanCreationException: Error creating bean
    with name 'gruposUnidadesServiceFacade' defined in class path resource
    [http://applicationContext.xml]: Invocation of init method failed; nested exception is
    javax.naming.NameNotFoundException: Unable to resolve
    'GruposUnidadesService'. Resolved ''; remaining name 'GruposUnidadesService'.
    org.springframework.beans.factory.BeanCreationException: Error creating bean
    with name 'gruposUnidadesServiceFacade' defined in class path resource
    [http://applicationContext.xml]: Invocation of init method failed; nested exception is
    javax.naming.NameNotFoundException: Unable to resolve 'GruposUnidadesService'. Resolved
    ''; remaining name 'GruposUnidadesService' at
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1260)
    at
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:438)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:383)
    at java.security.AccessController.doPrivileged(Native Method) at
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:353)
    at
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
    at
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169)
    at
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
    at
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:394)
    at
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:736)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:369)
    at
    org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:261)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
    at
    org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
    at
    weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:465)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source) at
    weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:175)
    at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1784)
    at
    weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2999)
    at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1371)
    at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:468) at
    weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
    at
    weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
    at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
    at
    weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)
    at
    weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117)
    at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
    at
    weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
    at
    weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
    at
    weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:27)
    at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:635)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
    at
    weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)
    at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:16)
    at
    weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:162)
    at
    weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
    at
    weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:569)
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:140)
    at
    weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:106)
    at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:323)
    at
    weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:820)
    at
    weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1227)
    at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:436)
    at
    weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:163)
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:181)
    at
    weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:12)
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:67)
    at
    weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201) at
    weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    javax.naming.NameNotFoundException: Unable to resolve 'GruposUnidadesService'. Resolved
    ''; remaining name 'GruposUnidadesService' at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1139)
    at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:252)
    at
    weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:182)
    at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:206) at
    weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254)
    at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:380) at
    javax.naming.InitialContext.lookup(InitialContext.java:392) at org.springframework.jndi.JndiTemplate$1.doInContext(JndiTemplate.java:132)
    at org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:88) at
    org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:130) at
    org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:155) at
    org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:93)
    at
    org.springframework.jndi.JndiObjectLocator.lookup(JndiObjectLocator.java:105)
    at org.springframework.ejb.access.AbstractRemoteSlsbInvokerInterceptor.lookup(AbstractRemoteSlsbInvokerInterceptor.java:97)
    at
    org.springframework.ejb.access.AbstractSlsbInvokerInterceptor.refreshHome(AbstractSlsbInvokerInterceptor.java:105)
    at org.springframework.ejb.access.AbstractSlsbInvokerInterceptor.afterPropertiesSet(AbstractSlsbInvokerInterceptor.java:92)
    at
    org.springframework.ejb.access.SimpleRemoteStatelessSessionProxyFactoryBean.afterPropertiesSet(SimpleRemoteStatelessSessionProxyFactoryBean.java:99)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1288)
    at
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1257)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:438)
    at
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:383)
    at java.security.AccessController.doPrivileged(Native Method) at
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:353)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
    at
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169)
    at
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
    at
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
    at
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:394)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:736)
    at
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:369)
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:261)
    at
    org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
    at
    weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:465)
    at
    weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source) at
    weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:175)
    at
    weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1784)
    at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2999)
    at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1371)
    at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:468) at
    weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
    at
    weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
    at
    weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
    at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)
    at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117)
    at
    weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
    at
    weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
    at
    weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:27)
    at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:635)
    at
    weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
    at
    weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)
    at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:16)
    at
    weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:162)
    at
    weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
    at
    weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:569)
    at
    weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:140)
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:106)
    at
    weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:323)
    at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:820)
    at
    weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1227)
    at
    weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:436)
    at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:163)
    at
    weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:181)
    at
    weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:12)
    at
    weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:67)
    at
    weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201) at
    weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    This my EJB3 bean code:
    @Stateless(name="GruposUnidadesService",
    mappedName="GruposUnidadesService")
    public
    class GruposUnidadesServiceBean implements GruposUnidadesService,
    GruposUnidadesServiceLocal {
    In the mappedName I have tried different ways like: "ejb/GruposUnidadesService"
    but I always get the same exception.
    This is my weblogic-ejb-jar.xml
    &lt;?xml version = '1.0' encoding =
    'windows-1252'?&gt;
    &lt;!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA
    Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN"
    "http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd"&gt;
    &lt;weblogic-ejb-jar&gt;
    &lt;weblogic-enterprise-bean&gt;
    &lt;ejb-name&gt;GruposUnidadesService&lt;/ejb-name&gt;
    &lt;enable-call-by-reference&gt;true&lt;/enable-call-by-reference&gt;
    &lt;/weblogic-enterprise-bean&gt;
    &lt;/weblogic-ejb-jar&gt;
    In the web module, I have Spring with MyFaces, in my applicationContext.xml
    I have:
    &lt;?xml version="1.0"
    encoding="UTF-8"?&gt;
    &lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD
    BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd"&gt;
    &lt;beans&gt;
    &lt;bean id="gruposUnidadesServiceFacade" class="org.springframework.ejb.access.SimpleRemoteStatelessSessionProxyFactoryBean"&gt;
    &lt;property name="jndiName"
    value="GruposUnidadesService"/&gt;
    &lt;property name="businessInterface" value="penoles.infraestructura.web.servicesfacades.gruposunidades.GruposUnidadesServiceFacade"/&gt;
    &lt;/bean&gt;
    &lt;bean
    id="gruposUnidadesServiceFacadeBean" class="penoles.infraestructura.web.servicesfacades.gruposunidades.GruposUnidadesServiceFacadeBean"&gt;
    &lt;property name="gruposUnidadesServiceFacade"
    ref="gruposUnidadesServiceFacade"/&gt;
    &lt;/bean&gt;
    &lt;/beans&gt;
    Here, I have tried adding the resourceRef property set
    to true and to false and always I get the exception.
    Finally, in my web.xml I have:
    &lt;ejb-ref&gt;
    &lt;ejb-ref-name&gt;GruposUnidadesService&lt;/ejb-ref-name&gt;
    &lt;ejb-ref-type&gt;Session&lt;/ejb-ref-type&gt;
    &lt;remote&gt;penoles.infraestructura.business.services.gruposunidades.GruposUnidadesService&lt;/remote&gt;
    &lt;/ejb-ref&gt;
    And in my weblogic.xml:
    &lt;?xml version = '1.0' encoding =
    'windows-1252'?&gt;
    &lt;!DOCTYPE weblogic-web-app PUBLIC "-//BEA
    Systems, Inc.//DTD Web Application 8.1//EN"
    "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd"&gt;
    &lt;weblogic-web-app&gt;
    &lt;reference-descriptor&gt;
    &lt;ejb-reference-description&gt;
    &lt;ejb-ref-name&gt;GruposUnidadesService&lt;/ejb-ref-name&gt;
    &lt;jndi-name&gt;ejb/GruposUnidadesService&lt;/jndi-name&gt;
    &lt;/ejb-reference-description&gt;
    &lt;/reference-descriptor&gt;
    &lt;/weblogic-web-app&gt;
    My environment is: Weblogic 10.3.0.0 on Linux Redhat 4
    thnks
    Edited by: user501097 on 08-oct-2008 8:29

    Well I Think it was a beginner mistake&hellip;
    I added to the following to my web.xml
    &lt;ejb-ref&gt;
    &lt;ejb-ref-name&gt;SeguridadService&lt;/ejb-ref-name&gt;
    &lt;ejb-ref-type&gt;Session&lt;/ejb-ref-type&gt;
    &lt;remote&gt;penoles.infraestructura.business.services.seguridad.SeguridadService&lt;/remote&gt;
    &lt;ejb-link&gt;SeguridadService&lt;/ejb-link&gt;
    &lt;/ejb-ref&gt;
    And change the applicationContext.xml
    &lt;bean id="gruposUnidadesServiceFacade" class = "org.springframework.jndi.JndiObjectFactoryBean"&gt;
    &lt;property name="resourceRef" value="true"/&gt;
    &lt;property name="proxyInterface" value="penoles.infraestructura.web.servicesfacades.gruposunidades.GruposUnidadesServiceFacade"/&gt;
    &lt;property name = "jndiName" value = "GruposUnidadesService"/&gt;
    &lt;/bean&gt;
    thnks!

  • Javax.naming.NameNotFoundException  plz guys help

    hi am try to create simple ejb prj and i got this exception iam beginner so can u plz help me to knwow hats wrong
    this is my entity bean
    working on netbean 6 glassfish v2
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    package doctor;
    import java.io.Serializable;
    import java.math.BigInteger;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.EntityManager;
    import javax.persistence.Id;
    import javax.persistence.NamedQueries;
    import javax.persistence.NamedQuery;
    import javax.persistence.Table;
    import javax.transaction.UserTransaction;
    * @author kriem
    @Entity
    @Table(name = "DOCTOR")
    @NamedQueries({@NamedQuery(name = "Doctor.findByDocFname", query = "SELECT d FROM Doctor d WHERE d.docFname = :docFname"), @NamedQuery(name = "Doctor.findByDocId", query = "SELECT d FROM Doctor d WHERE d.docId = :docId"), @NamedQuery(name = "Doctor.findByDocLname", query = "SELECT d FROM Doctor d WHERE d.docLname = :docLname"), @NamedQuery(name = "Doctor.findByDocPhone", query = "SELECT d FROM Doctor d WHERE d.docPhone = :docPhone"), @NamedQuery(name = "Doctor.findByDocAddress", query = "SELECT d FROM Doctor d WHERE d.docAddress = :docAddress"), @NamedQuery(name = "Doctor.findByDocMobileNo", query = "SELECT d FROM Doctor d WHERE d.docMobileNo = :docMobileNo"), @NamedQuery(name = "Doctor.findByDocSpecialty", query = "SELECT d FROM Doctor d WHERE d.docSpecialty = :docSpecialty"), @NamedQuery(name = "Doctor.findByDocTitle", query = "SELECT d FROM Doctor d WHERE d.docTitle = :docTitle")})
    public class Doctor implements Serializable {
        private static final long serialVersionUID = 1L;
        @Column(name = "DOC_FNAME", nullable = false)
        private String docFname;
        @Id
        @Column(name = "DOC_ID", nullable = false)
        private String docId;
        @Column(name = "DOC_LNAME", nullable = false)
        private String docLname;
        @Column(name = "DOC_PHONE")
        private BigInteger docPhone;
        @Column(name = "DOC_ADDRESS", nullable = false)
        private String docAddress;
        @Column(name = "DOC_MOBILE_NO")
        private BigInteger docMobileNo;
        @Column(name = "DOC_SPECIALTY", nullable = false)
        private String docSpecialty;
        @Column(name = "DOC_TITLE", nullable = false)
        private String docTitle;
        public Doctor() {
        public Doctor(String docId) {
            this.docId = docId;
        public Doctor(String docId, String docFname, String docLname, String docAddress, String docSpecialty, String docTitle) {
            this.docId = docId;
            this.docFname = docFname;
            this.docLname = docLname;
            this.docAddress = docAddress;
            this.docSpecialty = docSpecialty;
            this.docTitle = docTitle;
        public String getDocFname() {
            return docFname;
        public void setDocFname(String docFname) {
            this.docFname = docFname;
        public String getDocId() {
            return docId;
        public void setDocId(String docId) {
            this.docId = docId;
        public String getDocLname() {
            return docLname;
        public void setDocLname(String docLname) {
            this.docLname = docLname;
        public BigInteger getDocPhone() {
            return docPhone;
        public void setDocPhone(BigInteger docPhone) {
            this.docPhone = docPhone;
        public String getDocAddress() {
            return docAddress;
        public void setDocAddress(String docAddress) {
            this.docAddress = docAddress;
        public BigInteger getDocMobileNo() {
            return docMobileNo;
        public void setDocMobileNo(BigInteger docMobileNo) {
            this.docMobileNo = docMobileNo;
        public String getDocSpecialty() {
            return docSpecialty;
        public void setDocSpecialty(String docSpecialty) {
            this.docSpecialty = docSpecialty;
        public String getDocTitle() {
            return docTitle;
        public void setDocTitle(String docTitle) {
            this.docTitle = docTitle;
        @Override
        public int hashCode() {
            int hash = 0;
            hash += (docId != null ? docId.hashCode() : 0);
            return hash;
        @Override
        public boolean equals(Object object) {
            // TODO: Warning - this method won't work in the case the id fields are not set
            if (!(object instanceof Doctor)) {
                return false;
            Doctor other = (Doctor) object;
            if ((this.docId == null && other.docId != null) || (this.docId != null && !this.docId.equals(other.docId))) {
                return false;
            return true;
        @Override
        public String toString() {
            return "doctor.Doctor[docId=" + docId + "]";
        public void persist(Object object) {
            /* Add this to the deployment descriptor of this module (e.g. web.xml, ejb-jar.xml):
             * <persistence-context-ref>
             * <persistence-context-ref-name>persistence/LogicalName</persistence-context-ref-name>
             * <persistence-unit-name>simple-ejbPU</persistence-unit-name>
             * </persistence-context-ref>
             * <resource-ref>
             * <res-ref-name>UserTransaction</res-ref-name>
             * <res-type>javax.transaction.UserTransaction</res-type>
             * <res-auth>Container</res-auth>
             * </resource-ref> */
            try {
                Context ctx = new InitialContext();
                UserTransaction utx = (UserTransaction) ctx.lookup("java:comp/env/UserTransaction");
                utx.begin();
                EntityManager em = (EntityManager) ctx.lookup("java:comp/env/persistence/LogicalName");
                em.persist(object);
                utx.commit();
            } catch (Exception e) {
                java.util.logging.Logger.getLogger(getClass().getName()).log(java.util.logging.Level.SEVERE, "exception caught", e);
                throw new RuntimeException(e);
    }my session bean
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    package doctor;
    import java.util.List;
    import javax.ejb.Stateless;
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
    * @author kriem
    @Stateless
    public class DoctorFacade implements DoctorFacadeRemote {
        @PersistenceContext
        (unitName="simple-ejbPU")
        private EntityManager em;
        public void create(Doctor doctor) {
            em.persist(doctor);
        public void edit(Doctor doctor) {
            em.merge(doctor);
        public void remove(Doctor doctor) {
            em.remove(em.merge(doctor));
        public Doctor find(Object id) {
            return em.find(doctor.Doctor.class, id);
        public List<Doctor> findAll() {
            return em.createQuery("select object(o) from Doctor as o").getResultList();
        public void persist(Object object) {
            em.persist(object);
    }myremote interface
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    package doctor;
    import java.util.List;
    import javax.ejb.Remote;
    * @author kriem
    @Remote
    public interface DoctorFacadeRemote {
        void create(Doctor doctor);
        void edit(Doctor doctor);
        void remove(Doctor doctor);
        Doctor find(Object id);
        List<Doctor> findAll();
    }and for the clinet side its simple java aplication
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    package doctor;
    import java.util.Properties;
    import javax.naming.Context;
    import javax.rmi.PortableRemoteObject;
    * @author kriem
    public class client extends test  {
        public static void main(String [] args) {
        try {
           // NewServiceLocator obj=new NewServiceLocator();
            test simple=new test();
            simple.getDataSource("doctor");
            simple.getSession("DoctorFaca");
                Context jndiContext = getInitialContext( );
                Object ref = jndiContext.lookup("DoctorFacade/remote");
                DoctorFacadeRemote dao = (DoctorFacadeRemote)
                  PortableRemoteObject.narrow(ref,DoctorFacadeRemote.class);
         Doctor doc=new Doctor();
         doc.setDocFname("test");
         doc.setDocAddress("bla bla");
         doc.setDocId("D1005");
         doc.setDocLname("mohamedd");
        // doc.setDocMobileNo(121112223);
         doc.setDocTitle("MD");
         //doc.getDocPhone(2);
                dao.create(doc);
                Doctor doc2 = dao.find("D1002");
                System.out.println(doc2.getDocSpecialty());
                System.out.println(doc2.getDocFname());
                System.out.println(doc2.getDocLname());
                System.out.println(doc2.getDocAddress());
                System.out.println(doc2.getDocMobileNo());
                System.out.println(doc2.getDocPhone());
                System.out.println(doc2.getDocSpecialty());
                System.out.println(doc2.getDocTitle());
        catch (javax.naming.NamingException ne)
        {ne.printStackTrace( );
        public static Context getInitialContext( )
            throws javax.naming.NamingException {
            Properties p = new Properties( );
            // ... Specify the JNDI properties specific to the vendor.
            return new javax.naming.InitialContext(p);
        }and i got this exception knowing that am using entity bean from existing database that i had created
    javax.naming.NameNotFoundException:
            at com.sun.enterprise.naming.TransientContext.doLookup(TransientContext.java:216)
            at com.sun.enterprise.naming.TransientContext.lookup(TransientContext.java:188)
            at com.sun.enterprise.naming.SerialContextProviderImpl.lookup(SerialContextProviderImpl.java:74)
            at com.sun.enterprise.naming.RemoteSerialContextProviderImpl.lookup(RemoteSerialContextProviderImpl.java:129)
            at sun.reflect.GeneratedMethodAccessor121.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
            at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
            at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
            at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
            at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
            at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
            at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
            at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
            at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
            at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
            at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
    run-simple-app-client:guys anyhelp am really lost in this
    Edited by: marwacs on May 19, 2008 9:32 PM

    hey guys i made some updates on my sample and i figure out that as long as am creating enterprise application on netbeans 6 that contain both ejb module and client module i don`t need to write mapedName i only put the @ejb in the client side and it creates an instance of the remote interface
    here is what i have done in the client code /*
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    package enterpriseapplication4;
    import ejb.Doctor;
    import ejb.DoctorFacadeRemote;
    import javax.ejb.EJB;
    import java.math.BigInteger;
    * @author kriem
    public class Main {
        @EJB
        private static DoctorFacadeRemote doctorFacade;
         * @param args the command line arguments
        public static void main(String[] args) {
            // TODO code application logic here
    //        Object id="D1002";
    //        Doctor find = doctorFacade.find(id);
    //        find.toString();
    //            System.out.println(find.getDocSpecialty());
    //            System.out.println(find.getDocFname());
    //            System.out.println(find.getDocLname());
    //            System.out.println(find.getDocAddress());
    //            System.out.println(find.getDocMobileNo());
    //            System.out.println(find.getDocPhone());
    //            System.out.println(find.getDocSpecialty());
    //            System.out.println(find.getDocTitle());
                    Doctor doc=new Doctor();
                    BigInteger bi = BigInteger.valueOf(123);
                    BigInteger bh = BigInteger.valueOf(111);
         doc.setDocFname("test");
         doc.setDocAddress("bla bla");
      System.err.print("doc Fname and address");
         doc.setDocId("D1005");
         doc.setDocLname("mohamedd");
    doc.setDocMobileNo(bh);
         doc.setDocTitle("MD");
    doc.setDocMobileNo (bi);
      doctorFacade.create(doc);
      System.err.print("doc was added");
    }but when i run i found this
    May 21, 2008 6:37:08 PM com.sun.enterprise.appclient.MainWithModuleSupport <init>
    WARNING: ACC003: Application threw an exception.
    javax.ejb.EJBException: nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
            java.rmi.RemoteException: Transaction aborted; nested exception is: javax.transaction.RollbackException: Transaction marked for rollback.; nested exception is:
            javax.transaction.RollbackException: Transaction marked for rollback.
    java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
            java.rmi.RemoteException: Transaction aborted; nested exception is: javax.transaction.RollbackException: Transaction marked for rollback.; nested exception is:
            javax.transaction.RollbackException: Transaction marked for rollback.
            at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:243)
            at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:205)
            at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
            at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
            at ejb.__DoctorFacadeRemote_Remote_DynamicStub.create(ejb/__DoctorFacadeRemote_Remote_DynamicStub.java)
            at ejb._DoctorFacadeRemote_Wrapper.create(ejb/_DoctorFacadeRemote_Wrapper.java)
            at enterpriseapplication4.Main.main(Main.java:50)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at com.sun.enterprise.util.Utility.invokeApplicationMain(Utility.java:266)
            at com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithModuleSupport.java:449)
            at com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithModuleSupport.java:259)
            at com.sun.enterprise.appclient.Main.main(Main.java:200)
    Caused by: java.rmi.RemoteException: Transaction aborted; nested exception is: javax.transaction.RollbackException: Transaction marked for rollback.; nested exception is:
            javax.transaction.RollbackException: Transaction marked for rollback.
            at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:251)
            at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1386)
            at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)
            at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210)
            at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
            at $Proxy82.create(Unknown Source)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
            at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
            at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
            at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
            at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
            at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
            at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
            at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
            at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
            at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
            at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
    Caused by: javax.transaction.RollbackException: Transaction marked for rollback.
            at com.sun.enterprise.distributedtx.J2EETransaction.commit(J2EETransaction.java:440)
            at com.sun.enterprise.distributedtx.J2EETransactionManagerOpt.commit(J2EETransactionManagerOpt.java:371)
            at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:3792)
            at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3571)
            at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1354)
            ... 19 more
    javax.ejb.EJBException: nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
            java.rmi.RemoteException: Transaction aborted; nested exception is: javax.transaction.RollbackException: Transaction marked for rollback.; nested exception is:
            javax.transaction.RollbackException: Transaction marked for rollback.
            at ejb._DoctorFacadeRemote_Wrapper.create(ejb/_DoctorFacadeRemote_Wrapper.java)
            at enterpriseapplication4.Main.main(Main.java:50)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at com.sun.enterprise.util.Utility.invokeApplicationMain(Utility.java:266)
            at com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithModuleSupport.java:449)
            at com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithModuleSupport.java:259)
            at com.sun.enterprise.appclient.Main.main(Main.java:200)
    Exception in thread "main" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
            at com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithModuleSupport.java:461)
            at com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithModuleSupport.java:259)
            at com.sun.enterprise.appclient.Main.main(Main.java:200)
    Caused by: java.lang.reflect.InvocationTargetException
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at com.sun.enterprise.util.Utility.invokeApplicationMain(Utility.java:266)
            at com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithModuleSupport.java:449)
            ... 2 more
    Caused by: javax.ejb.EJBException: nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
            java.rmi.RemoteException: Transaction aborted; nested exception is: javax.transaction.RollbackException: Transaction marked for rollback.; nested exception is:
            javax.transaction.RollbackException: Transaction marked for rollback.
            at ejb._DoctorFacadeRemote_Wrapper.create(ejb/_DoctorFacadeRemote_Wrapper.java)
            at enterpriseapplication4.Main.main(Main.java:50)
            ... 8 morethe thing is am connecting my sample with oracle db and i debuged my sample it breaks when i try to create(doc) last line in the client code ,i guess its about connecting with the database,i don`t know i also working on netbean 6
    so plaz me guys another question is it possible to create statfule web services and if its plz can u send me examples

  • Javax.naming.NameNotFoundException: error in whil calling EJB Bean

    Dear friends,
    I have created (Bean Managed Entity) a remote,home and bean objects for adding a country in a database. When i convert
    into jar and and deploy means, its working fine. But if i put into a package means it does work
    and raise "javax.naming.NameNotFoundException" error.
    i keep my files as following folder structure
    d:\siva\projects\ShopCart\
    (under this )
    CountryMas.java
    CountryHome.java
    CountryBean.java
    CountryMasPK.java
    <meta-inf>
    ejb-jar.xml
    weblogic-ejb-jar.xml
    and deployed in weblogic 6.1 using console.
    i have copied the source code here with
    Remote interface
    package ShopCart;
    import javax.ejb.*;
    import javax.rmi.*;
    public interface CountryMas extends EJBObject {
    Home Interface
    package ShopCart;
    import javax.ejb.*;
    import java.rmi.*;
    public interface CountryHome extends EJBHome {
         public CountryMas create(String Cname) throws CreateException,RemoteException;
         public CountryMas findByPrimaryKey(CountryMasPK pk) throws      
    FinderException,RemoteException;
    BEAN OBJECT
    package ShopCart;
    import java.io.*;
    import java.util.*;
    import java.sql.*;
    import javax.sql.*;
    import javax.ejb.*;
    import javax.naming.*;
    public class CountryBean implements EntityBean {
         private EntityContext ctx;
         private int CountryId;
         private String CountryName;
         public void setEntityContext(EntityContext ctx){
              this.ctx = ctx;
         public void unsetEntityContext(){
              this.ctx = null;
         public void ejbActivate(){
         public void ejbPassivate(){
         public void ejbLoad(){
         public void ejbStore(){
         public void ejbRemove(){
              Connection con = null;
              PreparedStatement ps = null ;
              try {
                   con = getConnection();
                   ps = con.prepareStatement("Delete from CountryMas where id=?");
                   ps.setInt(1,CountryId);
                   if (ps.executeUpdate() !=1) {
                        String Error = "JDBC did not create any row";
                        throw new CreateException (Error);
              }catch (Exception e){
                   System.out.println (e);
         public CountryMasPK ejbCreate(String Cname) throws CreateException {
              this.CountryName =Cname;
              Connection con = null;
              PreparedStatement ps = null ;
              try {
                   con = getConnection();
                   ps = con.prepareStatement("insert into CountryMas values(?)");
                   ps.setString (1,CountryName);
                   if (ps.executeUpdate() !=1) {
                        String Error = "JDBC did not delete any row";
                        throw new CreateException (Error);
                   con.commit();
              }catch (Exception e){
                   System.out.println (e);
              int PKid=0;
              ResultSet rs;
              PreparedStatement ps1 = null;
              try {
                   ps1 = con.prepareStatement("select max(id) as Mid from CountryMas");
                   rs = ps1.executeQuery();
                   PKid = rs.getInt("mid");
              }catch(Exception e){
                   System.out.println (e);
              return new CountryMasPK(PKid);
         public void ejbPostCreate(String Cname) throws CreateException {
         private Connection getConnection()throws SQLException {
              InitialContext initCtx = null;
              DataSource ds = null;
              try{
                   initCtx = new InitialContext ();
                   ds = (javax.sql.DataSource)
                        initCtx.lookup("java:comp/env/jdbc/ShopCartPool");
              }catch(Exception e){
                   System.out.println(e);
              return ds.getConnection();           
         public CountryMasPK ejbFindByPrimaryKey(CountryMasPK pk)throws ObjectNotFoundException {
              Connection con= null;
              PreparedStatement ps = null ;
              try{
                   con = getConnection();
                   ps = con.prepareStatement("select cname from CountryMas where id=?");
                   ps.setInt(1,pk.ID);
                   ps.executeQuery();
                   ResultSet rs= ps.getResultSet();
                   if (rs.next()){
                        this.CountryName = rs.getString(1);
              }catch(Exception e){
                   System.out.println(e);
              //return new CountryMasPK(pk.i);
              return pk;
    PRIMARY KEY OBJECT
    package ShopCart;
    import java.io.Serializable;
    public class CountryMasPK implements java.io.Serializable {
         public int ID;
         public CountryMasPK(int ID){
              this.ID =ID;
         public CountryMasPK(){
         public CountryMasPK(CountryMasPK pk){
                   this.ID = pk.ID;
         public String toString(){
                   return new Integer(ID).toString();
         public int hashCode(){
              return new Integer(ID).hashCode();
         public boolean equals(Object countrymas){
              //return ((CountryMasPK)countrymas).ID.equals(ID);
              return true;
    EJB-JAR.XML
    <?xml version="1.0"?>
    <!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>
    <entity>
    <ejb-name>ShopCart</ejb-name>
    <home>ShopCart.CountryHome</home>
    <remote>ShopCart.CountryMas</remote>
    <ejb-class>ShopCart.CountryBean</ejb-class>
    <persistence-type>Bean</persistence-type>
    <prim-key-class>ShopCart.CountryMasPK</prim-key-class>
    <reentrant>False</reentrant>
    <resource-ref>
    <res-ref-name>jdbc/ShopCartPool</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </entity>
    </enterprise-beans>
    <assembly-descriptor>
    <container-transaction>
    <method>
    <ejb-name>ShopCart</ejb-name>
         <method-name>*</method-name>
    </method>
    <trans-attribute>Required</trans-attribute>
    </container-transaction>
    </assembly-descriptor>
    </ejb-jar>
    WEBLOGIC-EJB-JAR.XML
    <?xml version="1.0"?>
    <!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>ShopCart</ejb-name>
    <reference-descriptor>
    <resource-description>
    <res-ref-name>jdbc/ShopCartPool</res-ref-name>
         <jndi-name>ShopCartDataSource</jndi-name>
    </resource-description>
    </reference-descriptor>
    <jndi-name>Country</jndi-name>
    </weblogic-enterprise-bean>
    </weblogic-ejb-jar>
    i converted jar file like this
    d:\siva\projects\> set claapath=%classpath%;.;
    cd d:\siva\projects\ShopCart > javac *.java
    cd d:\siva\projects\ShopCart > jar -cvf Sh.jar *
    cd..
    d:\siva\projects> java weblogic.ejbc ShopCart\Sh.jar ShopCart\Shop.jar
    and deployed using weblogic 6.1 console
    and client code as follows
    Client.java
    import java.io.*;
    import javax.naming.*;
    import javax.ejb.*;
    import javax.rmi.*;
    import java.util.*;
    import ShopCart.*;
    class Client {
         public static void main(String args[]){
              Context ctx=null;
              try{
                   Properties pr = new Properties();
                   pr.put(Context.INITIAL_CONTEXT_FACTORY,
                        "weblogic.jndi.WLInitialContextFactory");
                   pr.put(Context.PROVIDER_URL,"t3://localhost:7001");
                   ctx= new InitialContext(pr);
                   Object obj = ctx.lookup("Country");
                   CountryHome cm = (CountryHome)
    javax.rmi.PortableRemoteObject.narrow(obj,CountryHome.class);
                   cm.create(args[0]);
                   System.out.println ("Creating Country " + args[0] +" ..... [Done]");          
              }catch (Exception e){
                   System.out.println(e);
    when i run this file it raise the error
    D:\Siva\Projects>java Client.java
    Exception in thread "main" java.lang.NoClassDefFoundError: Client/java
    D:\Siva\Projects>java Client
    javax.naming.NameNotFoundException: Unable to resolve Country. Resolved: '' Unre
    solved:'Country' ; remaining name ''
    D:\Siva\Projects>
    This is the error message. Please observe it and do let me know what would be the error. There
    would be small configuration error. But i couldn't locate it . plz help me somebody.
    Thanx & Regards,
    Siva.

    you need to use the name java:comp/env/Country in the client.
    and the client deployment descriptor will need an ejb-ref entry:
    <ejb-ref>
      <ejb-ref-name>
        Country
      </ejb-ref-name>
      <ejb-ref-type>
        Session
      </ejb-ref-type>
      <home>
        ShopCart.CountryHome
      </home>
      <remote>
        ShopCart.CountryMas
      </remote>
    </ejb-ref>toby

  • Javax.naming.NameNotFoundException: jdbc not bound

    Hi !
    I've a application deployed with JBoss 4.0.2 Solaris 2.8, I've create a Oracle DS, when I try to read data from a database throw DS works fine, but when I try to insert, delete or update records from database the jboss show the next error.
    2005-09-07 09:17:55,662 ERROR [org.jboss.ejb.plugins.LogInterceptor] Transaction
    RolledbackLocalException in method: public abstract int com.soluzionasf.arqw10.g
    c.cmp.OracleSequenceSessionLocal.getNextSequenceNumber(java.lang.String) throws
    javax.ejb.FinderException, causedBy:
    javax.naming.NameNotFoundException: jdbc not bound
    at org.jnp.server.NamingServer.getBinding(NamingServer.java:491)
    at org.jnp.server.NamingServer.getBinding(NamingServer.java:499)
    at org.jnp.server.NamingServer.getObject(NamingServer.java:505)
    at org.jnp.server.NamingServer.lookup(NamingServer.java:249)
    at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:610)
    at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572)
    at javax.naming.InitialContext.lookup(InitialContext.java:347)
    at com.soluzionasf.arqw10.gc.cmp.OracleSequenceSessionBean.getConnection
    (OracleSequenceSessionBean.java:76)
    at com.soluzionasf.arqw10.gc.cmp.OracleSequenceSessionBean.getNextSequen
    ceNumber(OracleSequenceSessionBean.java:46)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
    java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
    sorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at org.jboss.invocation.Invocation.performCall(Invocation.java:345)
    at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(S
    tatelessSessionContainer.java:214)
    at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invo
    ke(CachedConnectionInterceptor.java:185)
    at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(Stat
    elessSessionInstanceInterceptor.java:130)
    at org.jboss.webservice.server.ServiceEndpointInterceptor.invoke(Service
    EndpointInterceptor.java:51)
    at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidation
    Interceptor.java:48)
    at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInte
    rceptor.java:105)
    at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxIntercep
    torCMT.java:335)
    at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:1
    66)
    This is my DS definition
    <?xml version="1.0" encoding="UTF-8"?>
    <local-tx-datasource>
    <jndi-name>jdbc/OracleDS</jndi-name>
    <connection-url>jdbc:oracle:thin:@10.98.10.42:1532:orcl28</connection-url>
    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
    <user-name>evo_adminis</user-name>
    evo_adminis1
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
    <type-mapping>Oracle9i</type-mapping>
    </local-tx-datasource>
    Who knows the solutions for my problem
    Thanks for advance

    Could be that your EJB is connected to a wrong datasource called only "jdbc"?
    Strangely you say that while reading data all works fine (so the datasource definition is ok) but only when writing data there is a NamingException.
    The stacktrace seems to report an error while getting datasource reference inside com.soluzionasf.arqw10.gc.cmp.OracleSequenceSessionLocal.getNextSequenceNumber method, the problems seems to be a bad name resource name ("jdbc" instead of java:jdbc/OracleDS or java:comp/env/jdbc/OracleDS if you use resource reference in your web.xml file). If you created this class as a CMP perhaps you misstype the right datasource name, otherwise if you code this method by yourseft you misstype the naming reference.

  • Javax.naming.NameNotFoundException: Name java:comp is not bound in this Con

    Hi
    I have developed a search servlet and deployed it in tomcat 4.0.3 and connected to mysql database through jdbc by specifying jndi.
    I have coded JNDI lokkup name as "java:comp/env/jdbc/KgoogleDB"
    I have added a context in server.xml file of tomcat for DBCP connection pooling .I have tested this in windows and it is running well in it.
    But when i hosted this in linux i got error like this
    INIT OF SEARCH SERVLET
    Error in file reading Connection refused
    File Not Found
    javax.naming.NameNotFoundException: Name java:comp is not bound in this Context
    at org.apache.naming.NamingContext.lookup(NamingContext.java:811)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:194)
    at javax.naming.InitialContext.lookup(InitialContext.java:354)
    at DbConnect.getConnection(DbConnect.java:35)
    at QueryDetails.Query(QueryDetails.java:32)
    at Search.doPost(Search.java:66)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:446)
    at org.apache.catalina.servlets.InvokerServlet.doPost(InvokerServlet.java:216)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at filters.ExampleFilter.doFilter(ExampleFilter.java:149)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at filters.ExampleFilter.doFilter(ExampleFilter.java:149)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:475)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.connector.warp.WarpRequestHandler.handle(WarpRequestHandler.java:217)
    at org.apache.catalina.connector.warp.WarpConnection.run(WarpConnection.java:194)
    at java.lang.Thread.run(Thread.java:536)
    Connection ID null
    Entered FINALLY
    =================================
    What would be the cause of this error?.Please help me.
    My server.xml context is
    - <Host className="org.apache.catalina.connector.warp.WarpHost" name="www.keralagoogle.com" debug="0" appBase="/domains/www.yy.com/tomcat/webapps" unpackWARs="true">
    - <Context path="/yyjava" docBase="/domains/www.yy.com/tomcat/webapps/yyjava" debug="0" reloadable="true" crossContext="true">
    <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_KgoogleDB." suffix=".txt" timestamp="true" />
    <Resource name="jdbc/KgoogleDB" auth="Container" type="javax.sql.DataSource" />
    - <ResourceParams name="jdbc/KgoogleDB">
    - <parameter>
    <name>factory</name>
    <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    </parameter>
    - <!--
    Maximum number of dB connections in pool. Make sure you
              configure your mysqld max_connections large enough to handle
              all of your db connections. Set to 0 for no limit.
    -->
    - <parameter>
    <name>maxActive</name>
    <value>500</value>
    </parameter>
    - <!--
    Maximum number of idle dB connections to retain in pool.
              Set to 0 for no limit.
    -->
    - <parameter>
    <name>maxIdle</name>
    <value>300</value>
    </parameter>
    - <!--
    Maximum time to wait for a dB connection to become available
              in ms, in this example 10 seconds. An Exception is thrown if
              this timeout is exceeded. Set to -1 to wait indefinitely.
    -->
    - <parameter>
    <name>maxWait</name>
    <value>12000</value>
    </parameter>
    - <!-- MySQL dB username and password for dB connections
    -->
    - <parameter>
    <name>username</name>
    <value>pratap</value>
    </parameter>
    - <parameter>
    <name>password</name>
    <value>ky67yumXg</value>
    </parameter>
    - <!-- Class name for mm.mysql JDBC driver
    -->
    - <parameter>
    <name>driverClassName</name>
    <value>com.mysql.jdbc.Driver</value>
    </parameter>
    - <!--
    The JDBC connection url for connecting to your MySQL dB.
              The autoReconnect=true argument to the url makes sure that the
              mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
              connection. mysqld by default closes idle connections after 8 hours.
    -->
    - <parameter>
    <name>url</name>
    <value>jdbc:mysql://localhost:3306/kgoogle?</value>
    </parameter>
    </ResourceParams>
    </Context>
    ==============================
    Please help me find if i have to change the syntax for linux in the above code.
    Thanks in Advance
    Prathap

    hi
    Thanks for your advise.
    But when i chenged my web.xml and jndi name in my servlet file i got error like this
    javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
    at org.apache.naming.NamingContext.lookup(NamingContext.java:811)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:194)
    at org.apache.naming.SelectorContext.lookup(SelectorContext.java:183)
    at javax.naming.InitialContext.lookup(InitialContext.java:354)
    at DbConnect.getConnection(DbConnect.java:35)
    at QueryDetails.Query(QueryDetails.java:32)
    at Search.doPost(Search.java:66)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServl
    et.java:446)
    at org.apache.catalina.servlets.InvokerServlet.doPost(InvokerServlet.jav
    a:216)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
    icationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
    ilterChain.java:193)
    at filters.ExampleFilter.doFilter(ExampleFilter.java:149)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
    icationFilterChain.java:213)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
    ilterChain.java:193)
    at filters.ExampleFilter.doFilter(ExampleFilter.java:149)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
    icationFilterChain.java:213)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
    ilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
    alve.java:243)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
    .java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
    a:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
    alve.java:190)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
    .java:566)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
    torBase.java:475)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
    .java:564)
    at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve
    .java:246)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
    .java:564)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
    a:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:
    2343)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
    ava:180)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
    .java:566)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatche
    rValve.java:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
    .java:564)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
    ava:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
    .java:564)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
    468)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
    .java:564)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
    a:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
    ve.java:174)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
    .java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
    a:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcesso
    r.java:1012)
    at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.ja
    va:1107)
    at java.lang.Thread.run(Thread.java:536)
    Connection ID null
    Entered FINALLY
    Please help me
    Thanks in Advance
    Prathap

  • Javax.naming.NameNotFoundException: SessionEJBBean not found

    Please help I am getting error: javax.naming.NameNotFoundException: SessionEJBBean not found.
    I am using JDeveloper 10g as editor.
    The embedded server is running, SessionEJBBean is also there. I have restarted the computer, changed 'SessionEJB' from 'SessionEJBBean'. Yet No success. This is what I get.:
    javax.naming.NameNotFoundException: SessionEJBBean not found
    at com.evermind.server.rmi.RMIClientContext.lookup(RMIClientContext.java:52)
    at javax.naming.InitialContext.lookup(InitialContext.java:351)
    at friends.SessionEJBClient.main(SessionEJBClient.java:11)
    Process exited with exit code 0.
    SessionEJBClient.java
    package friends;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    public class SessionEJBClient {
    public static void main(String [] args) {
    try {
    final Context context = getInitialContext();
    SessionEJB sessionEJB = (SessionEJB)context.lookup("SessionEJBBean");
    } catch (Exception ex) {
    ex.printStackTrace();
    private static Context getInitialContext() throws NamingException {
    // Get InitialContext for Embedded OC4J
    // The embedded server must be running for lookups to succeed.
    return new InitialContext();
    }Thank you.

    Thanks Karma-9 for your reply. My issue has got resolved as I followed this link:
    http://www.oracle.com/technology/obe/obe1013jdev/10131/10131_ejb_30/ejb_30.htm
    However I have now new problem in hand, when I am trying to insert data in database
    using JSP. I am having problem with request.getParameter(). It is not
    recognised by JSP. A red underline is being shown below
    request.getParameter(). One more thing, in JSP page, if I take cursor over
    'request' in request.getParameter, it shows, 'Name request not found'. When
    I take cursor over 'getParameter' in request.getParameter, it shows, 'Method
    getParameter (java.lang.String) not found in<unknown>'.
    This is my code:
    MyPage.jsp
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page contentType="text/html;charset=windows-1252"%>
    <%@ page import="java.sql.*, javax.naming.Context,
    javax.naming.InitialContext, javax.naming.NamingException,
    friendspackage.*, java.text.*, java.util.*"%>
    <%!
    public void jspInit () {
    String name, city;
    name = request.getParameter("name");
    city = request.getParameter("city");
    try {
    final Context context = getInitialContext();
    SessionFriends sessionFriends =
    (SessionFriends)context.lookup("SessionFriends");
    sessionFriends.addFriends("name","city");
    //System.out.println( "Success" );
    } catch (Exception ex) {
    ex.printStackTrace();
    private static Context getInitialContext() throws NamingException {
    // Get InitialContext for Embedded OC4J
    // The embedded server must be running for lookups to succeed.
    return new InitialContext();
    %>MyPage.html
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;
    charset=windows-1252"></meta>
    <title>My Friends</title>
    </head>
    <body>
    <form name="MyFriends" action="MyFriends.jsp" method="post">
    Name:
    <input type="text" name="name">
    City:
    <input type="text" name="city">
    <input type="submit" value="Submit">
    </form>
    </body>
    </html>Please let me know if I have to make any changes in web.xml which is:
    <?xml version = '1.0' encoding = 'windows-1252'?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"
    xmlns="http://java.sun.com/xml/ns/j2ee">
    <description>Empty web.xml file for Web Application</description>
    <session-config>
    <session-timeout>35</session-timeout>
    </session-config>
    <mime-mapping>
    <extension>html</extension>
    <mime-type>text/html</mime-type>
    </mime-mapping>
    <mime-mapping>
    <extension>txt</extension>
    <mime-type>text/plain</mime-type>
    </mime-mapping>
    </web-app>Thank you again.
    Anurag

  • JNDI lookup from OC4J to weblogic throws javax.naming.NameNotFoundException

    Hi All,
    We have the below setup in our production environment.
    EJB application is deployed in the Weblogic 10.3.4.0 Server on Sun Solaris. The EJB version is 3.0
    OC4J 10.2.0 is running on another Sun Solaris machine.
    There are 2 webservice applications WEBSERV1 & TestSoapEJB running on this OC4J container.
    We need to do lookup the EJBs deployed on the Weblogic server. For this we used the below logic in the web service's Stateless session bean:
    String weblogicURL = "";
    Properties props = new Properties();
    try
    props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("wl.properties"));
    weblogicURL     = props.getProperty("weblogicURL");     
    catch (FileNotFoundException e)
    e.printStackTrace();
    catch (IOException e)
    e.printStackTrace();
    Context ctx = null;
    Hashtable ht = new Hashtable();
    ht.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
    ht.put(Context.SECURITY_PRINCIPAL,"weblogic");
    ht.put(Context.SECURITY_CREDENTIALS,"weblogic654");
    ht.put(Context.PROVIDER_URL, weblogicURL);
    ctx = NamingManager.getInitialContext(ht) ;
    // tried using //ctx = new InitialContext(ht); same behavior.
    TestEJB.AdministratorEJB ejb = (TestEJB.AdministratorEJB) ctx.lookup("TestEJB#TestEJB.AdministratorEJB");
    ctx.close();
    When we first test first WEBSER1, the lookup is fine.
    But when we test the second webservice WEBSER2, the webservice name itself not able to lookup: It gives the below error:
    javax.naming.NameNotFoundException: remaining name: env/TestSoapEJB
    Below is the stack throws thrown on browser:
    500 Internal Server Error
    javax.naming.NameNotFoundException: remaining name: env/TestSoapEJB     
    at weblogic.j2eeclient.SimpleContext.resolve(SimpleContext.java:35)     
    at weblogic.j2eeclient.SimpleContext.resolve(SimpleContext.java:39)     
    at weblogic.j2eeclient.SimpleContext.lookup(SimpleContext.java:59)     
    at weblogic.j2eeclient.SimpleContext.lookup(SimpleContext.java:59)     
    at weblogic.j2eeclient.SimpleContext.lookup(SimpleContext.java:64)     
    at weblogic.jndi.factories.java.ReadOnlyContextWrapper.lookup(ReadOnlyContextWrapper.java:45)     
    at weblogic.jndi.internal.AbstractURLContext.lookup(AbstractURLContext.java:130)     
    at javax.naming.InitialContext.lookup(InitialContext.java:392)     
    at oracle.j2ee.ws.SessionBeanRpcWebService.init(SessionBeanRpcWebService.java:65)     
    at javax.servlet.GenericServlet.init(GenericServlet.java:258)     
    at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.HttpApplication.loadServlet(HttpApplication.java:2354)     
    at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.HttpApplication.findServlet(HttpApplication.java:4795)     
    at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.HttpApplication.getRequestDispatcher(HttpApplication.java:2821)     
    at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:680)     
    at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:285)     
    at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:126)     
    at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)     
    at java.lang.Thread.run(Thread.java:662)
    It seems that, the OC4J is looking in Weblogic context. But it should be looking in its own context. How to resolve this issue.
    The same case happens if i restart the OC4J and first test the TestSoapEJB the lookup is fine . But if i test the WEBSERV1 , it throws the same error as above. In short, if one of the webservices lookup is working fine, the other webservice is not working. At the same time only one webservice's lookup is working.
    Kindly help me to resolve this issue.
    regards,
    Zia
    Edited by: PT Expert on Sep 9, 2012 3:16 AM

    I work now more that two days on this error!!!
    -> I remade my complete jdev project, it did not work!
    -> I deleted the jdev/system/j2ee/oc4j/workspace dir
    -> I search for some .lock files
    -> and many more tries!!! But without success...
    Is there a way to reset the Embedded OC4J?

  • [b]EJB unable to find my Home interface-javax.naming.NameNotFoundException[

    I am pretty new to J2ee so help me out with these basics
    I had deployed my application at college which worked exactly but when I deployed it at my home, it got deployed well but its returning a error message when create is called. Also i had used mssql for jdbc connection but haven't set the j2ee_classpath, pls help me how to find jdbc drivers .jar file. Does j2ee_classpath has anything to do with my error.All other paths are intact.
    Help me soon, i have to hurry up my proj...
    Advanced Thanks To Your Good Heart.
    - Suresh Kumar.R
    coding snippet -->****Down
         public AccountBean()
              try
                   Context ic=new InitialContext();
                   java.lang.Object objref=ic.lookup("java:comp/env/ejb/Account");
                   accountHome=(AcHome)PortableRemoteObject.narrow(objref,AcHome.class);
              catch(Exception re)
                   System.err.println("Couldn't locate Account Home");
                   re.printStackTrace();
              reset();
    ********Error :********
    Couldn't locate Account Home
    javax.naming.NameNotFoundException: Account not found
    <<no stack trace available>>ack trace available>>

    yes Everything you say is right in my prog. but it still does n't works.
    i haven't set my j2ee_classpath & does it have anything to do with my error.
    if so, where to find the drivers(MS-SQL) .jar file.
    Thank You for Your reply
    -Suresh Kumar.R

  • Javax.naming.NameNotFoundException.  Root exception is org.omg.CosNaming.Na

    Hello everyone:
    I am having trouble in finding local entity bean using jndi lookup. I am using wsad5.1.1. Jndi looks up my entity bean successfully if the ejb is remote.
    My local ejb lookup:
    Properties env = new Properties();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.cosnaming.CNCtxFactory");
    env.put(Context.PROVIDER_URL, "iiop://localhost:2809/");
    Context initialContext = new InitialContext(env);
    Object homeObject = initialContext.lookup("java:comp/env/ejb/DS_DLID_PORTRAIT");
    EJB-REF :
    <ejb-local-ref id="EJBLocalRef_1121106135046">
                        <ejb-ref-name>ejb/DS_DLID_PORTRAIT</ejb-ref-name>
                        <ejb-ref-type>Entity</ejb-ref-type>
                        <local-home>state.il.sos.doit.ejb.DS_DLID_PORTRAITLocalHome</local-home>
                        <local>state.il.sos.doit.ejb.DS_DLID_PORTRAITLocal</local>
                        <ejb-link>DS_DLID_PORTRAIT</ejb-link>
                   </ejb-local-ref>
    Any help is appreciated.
    Thanks.

    Greetings,
    javax.naming.NameNotFoundException. Root exception is
    org.omg.CosNaming.NamingContextPackage.NotFound
    =================
    Below is the line of my LoginServlet class which is
    referred to in the stack trace - Object object =
    context.lookup
                        ( "java:comp/env/ejb/WarehouseClerk" );The root of the naming context is 'java:comp/env' and this is where lookup automatically begins for EJBs and resources. IOW, by specifying "java:comp/env/ejb/WarehouseClerk" as the EJB lookup name the server is actually treating this as "java:comp/env/java:comp/env/ejb/WarehouseClerk". Specify only the ejb context ("ejb/WarehouseClerk") in your lookup and you should be fine.
    Any help would be most appreciated.
    SeanRegards,
    Tony "Vee Schade" Cook

  • Javax.naming.NameNotFoundException

    I am using Weblogic 7.0 and while deploying an EJB during startup I get this error?
    Somehow, this application deployed in some developers' machines and failed on
    others. I have no idea why? Pls help!
    Wen
    [exec] weblogic.ejb20.UnDeploymentException: cps_server_ejb.jar; nested exception
    is:
    [exec] javax.naming.NameNotFoundException: Unable to resolve 'app/ejb/cps_server_ejb.jar#StatefulWorkflowEJB'
    Resolved: 'app/ejb' Unresolved:
    'cps_server_ejb.jar#StatefulWorkflowEJB' ; remaining name 'cps_server_ejb.jar#StatefulWorkflowEJB'
    [exec] javax.naming.NameNotFoundException: Unable to resolve 'app/ejb/cps_server_ejb.jar#StatefulWorkflowEJB'
    Resolved: 'app/ejb' Unresolved:'cps
    serverejb.jar#StatefulWorkflowEJB' ; remaining name 'cps_server_ejb.jar#StatefulWorkflowEJB'
    [exec] at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:858)
    [exec] at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:223)
    [exec] at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:187)
    [exec] at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:338)
    [exec] at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:333)
    [exec] at weblogic.ejb20.deployer.EJBDeployer.cleanupAppContext(EJBDeployer.java:1739)
    [exec] at weblogic.ejb20.deployer.EJBDeployer.rollback(EJBDeployer.java:1420)
    [exec] at weblogic.ejb20.deployer.EJBDeployer.undeploy(EJBDeployer.java:310)
    [exec] at weblogic.ejb20.deployer.Deployer.deploy(Deployer.java:884)
    [exec] at weblogic.j2ee.EJBComponent.deploy(EJBComponent.java:79)
    [exec] at weblogic.j2ee.Application.addComponent(Application.java:294)
    [exec] at weblogic.j2ee.J2EEService.addDeployment(J2EEService.java:163)
    [exec] at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(DeploymentTarget.java:396)
    [exec] at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(DeploymentTarget.java:302)
    [exec] at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeployments(DeploymentTarget.java:256)
    [exec] at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments(DeploymentTarget.java:207)
    [exec] at java.lang.reflect.Method.invoke(Native Method)
    [exec] at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:717)
    [exec] at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:699)
    [exec] at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:405)
    [exec] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
    [exec] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
    [exec] at weblogic.management.internal.RemoteMBeanServerImpl.invoke(RemoteMBeanServerImpl.java:921)
    [exec] at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:470)
    [exec] at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:198)
    [exec] at $Proxy40.updateDeployments(Unknown Source)
    [exec] at weblogic.management.configuration.ServerMBean_CachingStub.updateDeployments(ServerMBean_CachingStub.java:3957)
    [exec] at weblogic.management.deploy.slave.SlaveDeployer.updateServerDeployments(SlaveDeployer.java:2258)
    [exec] at weblogic.management.deploy.slave.SlaveDeployer.resume(SlaveDeployer.java:365)
    [exec] at weblogic.management.deploy.DeploymentManagerServerLifeCycleImpl.resume(DeploymentManagerServerLifeCycleImpl.java:235)
    [exec] at weblogic.t3.srvr.ServerLifeCycleList.resume(ServerLifeCycleList.java:61)
    [exec] at weblogic.t3.srvr.T3Srvr.resume(T3Srvr.java:812)
    [exec] at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:294)
    [exec] at weblogic.Server.main(Server.java:31)
    [exec] <Oct 30, 2002 10:15:28 AM PST> <Error> <J2EE> <160001> <Error deploying
    application cps_server_ejb:

    Could it be caused by a wrong configuration in the Weblogic Server console?That, or you are simply using the wrong JNDI lookup path. Or both. The server should provide a function to see what is deployed in its JNDI context, hopefully also mentioning the JNDI path to use. If you need more help, I suggest you take your question to the weblogic forum.
    https://forums.oracle.com/forums/category.jspa?categoryID=193

Maybe you are looking for

  • Problems parsing a XML with binary element

    Hi, I'm trying to parse a xml that contains an element with the type "xs:hexBinary". The problem is that when i load a file in to the xml everything goes fine ... no matter the size of the file (i've tested it with 6Mb file), the problem is that when

  • LOV in oracle express

    Hi! I want do define a lov like this: select category, category from demo_product_info the problem ist that an error appaers that i am not allowed to use the same column-name for display and return-value?! thx!

  • Placing book order

    I have put together 3 mac books without problems so far, but I am having trouble with my current one. It is a full size 100 page hardbound. My other books have been smaller. when I send it off to print it gets to the end of the transfer and gives me

  • Custom Webservice WSDL error

    Hi, No WSDL document available for publishing error is displaying while accessing our custom web service. Could any one please suggest me in right way to resolve this error. Thanks in advance

  • GoLive Actions to Dreamweaver Behaviors

    GoLive Actions developed by actionscafé are now being ported over to Dreamweaver Behaviors. If you're an ex GoLive user and are holding back switching some of your site(s) over to DW because you can't find replacement Behaviors for actionscafé softwa