Duvida de iniciante

2 respostas
J

Eu fiz um programa no Eclipse chamado calculadora que roda sem problemas, mas ultimamente eu estou gostando muito mais do Netbeans 6 do que o Eclipse e tentei rodar o mesmo, mas da o seguinte erro.

Sera alguem pode ajudar encontrar o erro no programa?
agradeço a atenção
Henrique

javax.naming.NameNotFoundException

at com.sun.enterprise.naming.TransientContext.resolveContext(TransientContext.java:268)

at com.sun.enterprise.naming.TransientContext.lookup(TransientContext.java:191)

at com.sun.enterprise.naming.SerialContextProviderImpl.lookup(SerialContextProviderImpl.java:74)

at com.sun.enterprise.naming.RemoteSerialContextProviderImpl.lookup(RemoteSerialContextProviderImpl.java:129)

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:585)

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)

Exception in thread main java.lang.NullPointerException

at calculadora.CalculadoraTeste.main(CalculadoraTeste.java:44)

@Stateful
public class CalculadoraBean implements CalculadoraRemote {

private double memoria;

public double adicionar(double a, double b) {
    return a + b;
}
public double subtrair(double a, double b) {
    return a - b;
}
public double multiplicar(double a, double b) {
    return a * b;
}
public double dividir(double a, double b) throws DivisaoPorZeroException {
    if(b == 0){
        throw new DivisaoPorZeroException("Divisao por zero");
    }return a / b;
}
public void adicionarMemoria(double a) {
    memoria += a;
}
public double obterMemoria() {
    return memoria;
}
public void zerarMemoria() {
    memoria = 0;
}

}

O cliente:

public class CalculadoraTeste {

private CalculadoraRemote calculadora;

@SuppressWarnings("unchecked")
public CalculadoraTeste(){
    try{
        Hashtable ht = new Hashtable();
        ht.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
        ht.put(Context.PROVIDER_URL,"localhost");
        
        Context context = new InitialContext();
        Object ref = context.lookup("CalculadoraBean/remote");
        this.calculadora = (CalculadoraRemote)PortableRemoteObject.narrow(ref, CalculadoraRemote.class);
    }   
    catch(NamingException ex){
        ex.printStackTrace();
    }
}
public CalculadoraRemote getCalculadora(){
    return this.calculadora;
}
public static void main(String[] args) {
    CalculadoraTeste calculadora = new CalculadoraTeste();
    CalculadoraRemote remote = calculadora.getCalculadora();
    try{
        double d1 = remote.adicionar(3, 4);
        remote.adicionarMemoria(d1);
        double d2 = remote.subtrair(d1, 4);
        double d3 = remote.multiplicar(d2, 5);
        double d4 = remote.dividir(d3,3);
        double d5 = remote.obterMemoria();
        
        System.out.println("Resuldado da soma: " + d1);
        System.out.println("Resultado da subracao: " + d2);
        System.out.println("Resultado da multiplicação: " + d3);
        System.out.println("Resultado da divisão: " + d4);
        System.out.println("Estado da memoria: " + d5);
        remote.zerarMemoria();
    }
    catch(DivisaoPorZeroException ex){
        System.out.println(ex.getMessage());
    }
}

}

2 Respostas

_Renatu

o problema está no lookup…

ele nao encontrou o nome “CalculadoraBean/remote”, muito provavelmente…

de uma olhada se ele está configurado direitinho… se ele está disponível, se nao tem digitação errada maiuscula/minuscula, por exemplo…

J

Estranho nao ter encontrado o nome ele está correto, o mesmo código no Eclipse funciona blz.
agradeço a ajuda

Criado 27 de abril de 2008
Ultima resposta 27 de abr. de 2008
Respostas 2
Participantes 2