Boas pessoal, seguinte: Estou a tentar aceder a um ejb a partir de uma app java desktop só que tenho o seguinte erro:
[quote]Exception in thread “main” javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:344)
at javax.naming.InitialContext.lookup(InitialContext.java:411)
at helloclient.HelloClient.main(HelloClient.java:29)[/quote]
Aqui está o codigo do ejb:
@Stateless
@LocalBean
public class HelloSessionBean{
public String mensagem(){
return "Hello Word";
}
}
e o codigo da aplicação cliente:
public static void main(String[] args) throws NamingException {
InitialContext ic = new InitialContext();
HelloSessionBean hsb = (HelloSessionBean)ic.lookup("hello.HelloSessionBean");
System.out.println(hsb.mensagem());
}
[quote=Vanilson]Boas pessoal, seguinte: Estou a tentar aceder a um ejb a partir de uma app java desktop só que tenho o seguinte erro:
[quote]Exception in thread “main” javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:344)
at javax.naming.InitialContext.lookup(InitialContext.java:411)
at helloclient.HelloClient.main(HelloClient.java:29)[/quote]
Aqui está o codigo do ejb:
@Stateless
@LocalBean
public class HelloSessionBean{
public String mensagem(){
return "Hello Word";
}
}
e o codigo da aplicação cliente:
public static void main(String[] args) throws NamingException {
InitialContext ic = new InitialContext();
HelloSessionBean hsb = (HelloSessionBean)ic.lookup("hello.HelloSessionBean");
System.out.println(hsb.mensagem());
}[/quote]
você está colocando o nome “cru” do EJB… coloque algo como esse exemplo “java:global/lookup-de-ejbs/MeuBean”
darklordkamui, fiz a alteração que disseste e o erro continua…
Não tem que estar anotado com @Remote?
raf4ever, tambem já tentei isso e continua a não encontrar o ejb…
[quote=Vanilson]darklordkamui, fiz a alteração que disseste e o erro continua…
lembrei de um detalhe…