EJB3 java.lang.ClassCastException

Estou fazendo um “HelloWorld” em ejb3, mas estou recebendo a seguinte exception

[color=red] Exception in thread “main” java.lang.ClassCastException: org.jnp.interfaces.NamingContext cannot be cast to ejb.session.local.Cadastrar
at Cliente.main(Cliente.java:16)[/color]

Meu código é o seguinte:

[code]package ejb.session.local;

import javax.ejb.Local;

@Local
public interface Cadastrar {
public void cadCurso();
public String getCursos();
}
[/code]

[code]package ejb.session.local;

import javax.ejb.Stateless;

@Stateless(name=“ejb/cadastrar”)
public class CadastrarBean implements Cadastrar {
public void cadCurso() {
System.out.println(“curso Cadastradto”);

}

public String getCursos() {
	return "OI getCursos";
}

}[/code]

e o cliente

[code]import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;

import ejb.session.local.Cadastrar;

import java.util.Properties;
public class Cliente {
public static void main(String[] args) throws Exception {
Properties prop = new Properties();
prop.put(“java.naming.factory.initial”,“org.jnp.interfaces.NamingContextFactory”);
prop.put(InitialContext.URL_PKG_PREFIXES, “org.jboss.naming:org.jnp.interfaces”);
prop.put(InitialContext.PROVIDER_URL,“jnp://localhost:1099”);
Context ctx = new InitialContext(prop);

 Cadastrar cad = (Cadastrar)ctx.lookup("ejb/cadastrar");

}}[/code]

Poruqe esta acontecendo essa exceção?

Valew

Acredito que seja o cast de cliente que vc a fazendo para ctx.lookup…

de uma olhada com carinho na linha 16.,

badjceo , vc conseguiu resolver este problema?

Estou passando por uma situação idêntica e não sei o que pode ser.

Grato.

Sendo JBoss, tenta o “/remote” no final do lookup.

     Cadastrar cad = (Cadastrar)ctx.lookup("ejb/cadastrar/remote");

Pessoall

Alguem conseguiu resolver ?

Estou com o mesmo problema !!!

Vlw

Testa assim:

package com.q10.session;

import javax.ejb.Remote;

@Remote
public interface CalculadoraBeanRemote {

    int somar(int valor1, int valor2);

    void retorneTeste();
    
}
package com.q10.session;

import javax.ejb.Stateless;

@Stateless
public class CalculadoraBean implements CalculadoraBeanRemote {

    public int somar(int valor1, int valor2) {
        return valor1 + valor2;
    }

    public void retorneTeste() {
        System.out.print("teste OK");
    }
}

esse eh o cliente

package clientecalculadora;

import com.q10.session.CalculadoraBeanRemote;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;

public class Main {

    public static void main(String[] args) throws Exception {

        new Main().testeEjb();
    }

    public void testeEjb() throws Exception {

        Properties properties = new Properties();
        properties.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
        properties.put("java.naming.factory.url.pkgs", "=org.jboss.naming:org.jnp.interfaces");
        properties.put("java.naming.provider.url", "localhost:1099");

        Context context = new InitialContext(properties);
        Object home = context.lookup("CalculadoraBean/remote");
        CalculadoraBeanRemote remote = (CalculadoraBeanRemote) home;
        remote.retorneTeste();
        System.out.println(remote.somar(10, 37));
    }
}