comp not bound
JNDI名称没有被绑定

解决方案 »

  1.   

    to yeshucheng(叶澍成(七哥)) :
       是因为jnp server没有启动才会jndi没有被绑定的吧?
    to zhbliuchun:
       怎么查1098端口被哪个程序占用了?
      

  2.   

    我将 jboss\server\default\conf\jboss-service.xml 文件的:
       <mbean code="org.jboss.naming.NamingService"
          name="jboss:service=Naming">
          <attribute name="Port">1099</attribute>
          <attribute name="BindAddress">${jboss.bind.address}</attribute>
          <attribute name="RmiPort">1098</attribute>
          <attribute name="RmiBindAddress">${jboss.bind.address}</attribute>
       </mbean>
    中设置的端口号改成:
       <mbean code="org.jboss.naming.NamingService"
          name="jboss:service=Naming">
          <attribute name="Port">2001</attribute>
          <attribute name="BindAddress">${jboss.bind.address}</attribute>
          <attribute name="RmiPort">2000</attribute>
          <attribute name="RmiBindAddress">${jboss.bind.address}</attribute>
       </mbean>重新启动jboss,显示Calculator.jar部署没有问题。
    但是在eclipse窗口中运行CalculatorClient时报错超时错误,具体如下:
    log4j:WARN No appenders could be found for logger (org.jnp.interfaces.NamingContext).
    log4j:WARN Please initialize the log4j system properly.
    javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out]
    at org.jnp.interfaces.NamingContext.discoverServer(NamingContext.java:1115)
    at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1192)
    at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:514)
    at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:507)
    at javax.naming.InitialContext.lookup(InitialContext.java:347)
    at j2ee_test.ejb.ebean.client.NodeClient.main(NodeClient.java:34)
    Caused by: java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive(Native Method)
    at java.net.DatagramSocket.receive(DatagramSocket.java:711)
    at org.jnp.interfaces.NamingContext.discoverServer(NamingContext.java:1093)
    ... 5 more
    Exception in thread "main" 
      

  3.   

    附上客户端调用程序:
    /*
     * Created on 2004-11-16
     * Purpose : 
     */
    package j2ee_test.ejb.sbean.client;import j2ee_test.ejb.sbean.*;
    import java.util.*;
    import javax.naming.*;
    import javax.rmi.PortableRemoteObject;import javax.naming.Context;
    public class CalculatorClient {    public CalculatorClient() {
            super();
        }
        
        public static void main(String[] args) throws Exception{
            Calculator objCalculator = null;
            CalculatorClient objCalculatorClient = new CalculatorClient();
            objCalculator = objCalculatorClient.getCalculator();
            objCalculator.setValue(10);
            objCalculator.add(10);
            System.out.println(objCalculator.getValue());
        }
        
        public Calculator getCalculator() throws Exception{
            Calculator objCalculator = null;
            Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY,
    "org.jnp.interfaces.NamingContextFactory");
    env.put(Context.PROVIDER_URL,"localhost");
    Context initContext = new InitialContext(env);
    try{
        Object ref = initContext.lookup("CalculatorHomeRemote");
        CalculatorHome home = (CalculatorHome)PortableRemoteObject.narrow(ref,CalculatorHome.class);
        objCalculator = home.create();
        return objCalculator;     
    }
    catch(Exception ex){
        ex.printStackTrace();
        return objCalculator;     
    }
    finally{
        if (initContext != null){
            initContext.close();
        }
    }

        }
    }