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.
Caike
Agosto 28, 2008, 12:18am
#4
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));
}
}