Erro ao chamar o ejb

2 respostas
C

Bom dia senhores, estou com um problema em fazer o um ejb no jboss 7, segui abaixo as classes:

package com.ejb3inaction.actionbazaar.buslogic;

import javax.ejb.Remote;

@Remote
public interface HelloUser {
	public void sayHello(String name);
}
package com.ejb3inaction.actionbazaar.client;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import com.ejb3inaction.actionbazaar.buslogic.HelloUser;
import com.ejb3inaction.actionbazaar.buslogic.HelloUserBean;

public class HelloUserClient {
	private static HelloUser helloUser;

	public static void main(String[] args) {
		try {
			Context context = new InitialContext();
			helloUser = (HelloUser) context.lookup("chapter1/"
					+ HelloUserBean.class.getSimpleName() + "/remote");
			helloUser.sayHello("Curious George");
		} catch (NamingException e) {
			e.printStackTrace();
		}
	}
}

jndi.properties

console

12:05:38,367 INFO  [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-8) JNDI bindings for session bean named HelloUserBean in deployment unit deployment "chapter1.jar" are as follows:

	java:global/chapter1/HelloUserBean!com.ejb3inaction.actionbazaar.buslogic.HelloUser
	java:app/chapter1/HelloUserBean!com.ejb3inaction.actionbazaar.buslogic.HelloUser
	java:module/HelloUserBean!com.ejb3inaction.actionbazaar.buslogic.HelloUser
	java:global/chapter1/HelloUserBean
	java:app/chapter1/HelloUserBean
	java:module/HelloUserBean

12:05:38,476 INFO  [org.jboss.as] (MSC service thread 1-7) JBoss AS 7.1.0.Beta1b "Tesla" started in 1868ms - Started 160 of 223 services (62 services are passive or on-demand)
12:05:38,515 INFO  [org.jboss.as.server.controller] (DeploymentScanner-threads - 2) Deployed "chapter1.jar"
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 com.ejb3inaction.actionbazaar.client.HelloUserClient.main(HelloUserClient.java:16)

Alguem poderia me ajudar a resolver esse problema?

T+

2 Respostas

Roger75

Tente colocar no classpath do cliente as referências para as classes remote do EJB. Pode ser isso…

M

Claudemir,

você conseguiu resolver o problema?

Você conseguiu rodar EJB3.1 com JBoss 7? Em caso positivo, tem como me dar uma dica ou passar um exemplo? Repliquei seu exemplo com Jboss 7.1 e não funciona.

Quando rodo a main da classe HelloUserClient o seguinte erro é retornado:

javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out]
	at org.jnp.interfaces.NamingContext.discoverServer(NamingContext.java:1302)
	at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1382)
	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:579)
	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572)
	at javax.naming.InitialContext.lookup(Unknown Source)
	at com.ejb3inaction.actionbazaar.client.HelloUserClient.main(HelloUserClient.java:16)
Caused by: java.net.SocketTimeoutException: Receive timed out
	at java.net.PlainDatagramSocketImpl.receive0(Native Method)
	at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
	at java.net.DatagramSocket.receive(Unknown Source)
	at org.jnp.interfaces.NamingContext.discoverServer(NamingContext.java:1272)
	... 5 more
Criado 18 de dezembro de 2011
Ultima resposta 19 de dez. de 2011
Respostas 2
Participantes 3