EJB 3.0 + Eclipse + JBoss 5.1.0  XML
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Autor Mensagem
fenixsp
What is classpath?

Membro desde: 31/05/2010 22:18:00
Mensagens: 5
Offline

Comunidade,

Estou estudando EJB 3.0 e não consigo executar o "simples" programa para um stateless session bean. Abaixo as classes juntamente com o erro quando executo o cliente. Vocês poderiam me ajudar?

===============

package fontes;
import javax.ejb.Remote;

@Remote
public interface HelloWorldLocal {
public String hello();

}

==================

package fontes;

import javax.ejb.Stateless;

/**
* Session Bean implementation class HelloWorld
*
*/
@Stateless

public class HelloWorld implements HelloWorldLocal {

/**
* Default constructor.
*/
public HelloWorld() {
// TODO Auto-generated constructor stub
}

@Override
public String hello() {
System.out.println("Primeiro EJB Funcionando");
return "Hello, World!";
}

}

================

package fontes;

import javax.naming.*;

public class HelloClient {

/**
* @param args
* @throws NamingException
*/
public static void main(String[] args) throws NamingException {
// TODO Auto-generated method stub
try {
Context ctx = new InitialContext();
HelloWorldLocal hello = (HelloWorldLocal) ctx.lookup("fontes.HelloWorldLocal");
System.out.println(hello.hello());
}catch (NamingException ex) {
ex.printStackTrace();
}

}

}

==============

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(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.lookup(Unknown Source)
at fontes.HelloClient.main(HelloClient.java:15)
luan03
Entusiasta Java
[Avatar]

Membro desde: 29/10/2009 01:51:33
Mensagens: 19
Offline

Pede ajuda para o SENSATO uhauhauhauhauh!
[MSN]
maior_abandonado
JWizard
[Avatar]

Membro desde: 03/09/2007 11:30:08
Mensagens: 2694
Localização: sp
Offline

seu cliente do ejb precisa das propriedades do innitialContext

eu também não manjo muito de ejb, mais pelo que eu aprendi, você deve criar o innitialContext passando um properties, ou map (não lembro direito se pode ser map)com as configurações:

se você tiver usando o JBOSS na sua própria maquina acho que ficaria alguma coisa +- assim:




e outra coisa, coloque seus códigos entre as tags code

This message was edited 1 time. Last update was at 01/06/2010 07:17:50


espero ter ajudado...

falando nisso, caso seu problema tenha sido resolvido, edite o seu primeiro post e coloque um [RESOLVIDO] no titulo do tópico.
fenixsp
What is classpath?

Membro desde: 31/05/2010 22:18:00
Mensagens: 5
Offline

Funcionou cara.

Obrigado
warley
Java Ninja
[Avatar]

Membro desde: 16/03/2004 18:46:25
Mensagens: 266
Localização: Vitória - ES
Offline

Amigão,

Vc pode usar a anotação @EJB para fazer o lookup e não ter q escrever este monte de código :

Properties env = new Properties();
env.put(Context.SECURITY_PRINCIPAL, "guest" );
env.put(Context.SECURITY_CREDENTIALS, "guest" );
env.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jboss.security.jndi.JndiLoginInitialContextFactory");
env.put(Context.PROVIDER_URL, "jnp://localhost:1099");

Este monte de código fica uma bagunça!

Abraço.

Ninguém é tão grande que não possa aprender, nem tão pequeno que não possa ensinar

Já me perguntaram: "O porquê que tem que ser em Java?"
Eu respondi: "Por quê não pode ser?"

- SCWCD 1.4
- SCJP 5.0
- SCJA 1.0
[Email]
fenixsp
What is classpath?

Membro desde: 31/05/2010 22:18:00
Mensagens: 5
Offline

cara.. valeu pela dica... mas não consegui rodar.. como ficaria meu código?
Sefo
JavaChild
[Avatar]

Membro desde: 18/08/2006 10:02:28
Mensagens: 102
Offline

Qual erro que tá acusando?

Só um palpite:
acredito que o lookup correto seria dessa forma:


NY GIANTS!!!!

WAR BIG BLUES!!!!

fenixsp
What is classpath?

Membro desde: 31/05/2010 22:18:00
Mensagens: 5
Offline

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

/*Properties env = new Properties();
env.put(Context.SECURITY_PRINCIPAL, "guest" );
env.put(Context.SECURITY_CREDENTIALS, "guest" );
env.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jboss.security.jndi.JndiLoginInitialContextFactory");
env.put(Context.PROVIDER_URL, "jnp://localhost:1099");*/
try {
//Context ctx = new InitialContext(env);
Context ctx = new InitialContext();
HelloWorldLocal hello = (HelloWorldLocal) ctx.lookup("HelloWorldLocal/remote");
System.out.println(hello.hello());

}catch (NamingException ex) {
ex.printStackTrace();
}

}

===============
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(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.lookup(Unknown Source)
at fontes.HelloClient.main(HelloClient.java:31)

[Thumb - erroNaming.JPG]
 Nome do arquivo erroNaming.JPG [Disk] Download
 Descrição
 Tamanho 78 Kbytes
 Baixado:  38 vez(es)

Sefo
JavaChild
[Avatar]

Membro desde: 18/08/2006 10:02:28
Mensagens: 102
Offline

Tente assim:



Se der errado, favor colocar o erro, se der certo não esqueça do RESOLVIDO no titulo do topico, ok?

NY GIANTS!!!!

WAR BIG BLUES!!!!

fenixsp
What is classpath?

Membro desde: 31/05/2010 22:18:00
Mensagens: 5
Offline

Cara... desse forma funciona..

Eu voltei a postar pelo fato de terem me dito em post posterior... Quero saber como utilizar o @EJB

Vc pode usar a anotação @EJB para fazer o lookup e não ter q escrever este monte de código :

Properties env = new Properties();
env.put(Context.SECURITY_PRINCIPAL, "guest" );
env.put(Context.SECURITY_CREDENTIALS, "guest" );
env.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jboss.security.jndi.JndiLoginInitialContextFactory");
env.put(Context.PROVIDER_URL, "jnp://localhost:1099");

Este monte de código fica uma bagunça!

Abraço


Não consegui rodar utilizando annotation @EJB
Sefo
JavaChild
[Avatar]

Membro desde: 18/08/2006 10:02:28
Mensagens: 102
Offline

.

This message was edited 2 times. Last update was at 02/06/2010 07:59:35


NY GIANTS!!!!

WAR BIG BLUES!!!!

 
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Ir para:   
Powered by JForum 2.1.8 © JForum Team