Java – Exception in thread “main” javax.naming.CommunicationException

eclipseejbjavajboss5.x

I have created a ejb2 application in eclipse 3.7, with jboss 5.0 application server. my client code is as follows-

import rohit.*;

import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.ejb.CreateException;


public class Main {
    public static void main(String[] args)throws Exception {
        // TODO Auto-generated method stub
        try{
        Context  ctx = getContext();
        //Context  ctx=new InitialContext();
        Object obj=ctx.lookup("ProductBean");
        ProductHome home =(ProductHome) javax.rmi.PortableRemoteObject.narrow(obj, ProductHome.class);
        ProductRemote remote=home.create();

        Product prd = new Product("PRDCamera",001,50.50) ;
        remote.addProduct(prd);
        remote.updateProduct(prd);
        remote.removeProduct(001);
        remote.findProduct(001);
        remote.findAllProduct();
        }
        catch(CreateException e){}


    }

    public static InitialContext getContext() throws Exception{
    Properties pro = new Properties();
    pro.put(javax.naming.InitialContext.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
    pro.put(javax.naming.InitialContext.PROVIDER_URL,"http://localhost:1099");

    return new InitialContext(pro);
 }


    /* (non-Java-doc)
     * @see java.lang.Object#Object()
     */
    public Main() {
        super();
    }

}

when i run it i get following error-

Exception in thread "main" javax.naming.CommunicationException: Could not obtain connection to any of these urls: http://localhost:1099 and discovery failed with error: javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out] [Root exception is javax.naming.CommunicationException: Failed to connect to server http:1099 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server http:1099 [Root exception is java.net.UnknownHostException: http]]]
    at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1727)
    at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:680)
    at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:673)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)
    at Main.main(Main.java:15)
Caused by: javax.naming.CommunicationException: Failed to connect to server http:1099 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server http:1099 [Root exception is java.net.UnknownHostException: http]]
    at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:311)
    at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1698)
    ... 4 more
Caused by: javax.naming.ServiceUnavailableException: Failed to connect to server http:1099 [Root exception is java.net.UnknownHostException: http]
    at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:281)
    ... 5 more
Caused by: java.net.UnknownHostException: http
    at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
    at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:849)
    at java.net.InetAddress.getAddressFromNameService(InetAddress.java:1202)
    at java.net.InetAddress.getAllByName0(InetAddress.java:1153)
    at java.net.InetAddress.getAllByName(InetAddress.java:1083)
    at java.net.InetAddress.getAllByName(InetAddress.java:1019)
    at java.net.InetAddress.getByName(InetAddress.java:969)
    at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:81)
    at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:277)
    ... 5 more

so whats the problem ? jndi port for jboss is 1099 (checked it already).

Best Answer

try removing http:// from your url