EJB (Enterprise Java Beans) - Ayuda con NamingException en Wildfly10 para mensajería

 
Vista:
sin imagen de perfil
Val: 3
Ha mantenido su posición en EJB (Enterprise Java Beans) (en relación al último mes)
Gráfica de EJB (Enterprise Java Beans)

Ayuda con NamingException en Wildfly10 para mensajería

Publicado por Agustin (2 intervenciones) el 25/11/2017 00:02:30
Buenas

Estoy con un proyecto EJB en el que tengo que enviarle a otro proyecto EJB un TextMessage. Cuando corro el código de productor en un proyecto Java común, el mensaje llega, ahora bien, cuando corro el mismo código en un server wildfly 10, me tira el siguiente error:

javax.naming.NamingException: WFLYNAM0027: Failed instantiate InitialContextFactory org.jboss.naming.remote.client.InitialContextFactory from classloader ModuleClassLoader for Module (y el nombre de mi proyecto EAR).

Les pego el código del productor:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Context context;
try {
	final Properties env = new Properties();
	env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
	env.put(Context.PROVIDER_URL,
		System.getProperty(Context.PROVIDER_URL, "http-remoting://xx.xx.xx.xxx:8080"));
	env.put(Context.SECURITY_PRINCIPAL, System.getProperty("username", "username"));
	env.put(Context.SECURITY_CREDENTIALS, System.getProperty("password", "password"));
	context = new InitialContext(env);
 
	String connectionFactoryString = System.getProperty("connection.factory", "jms/RemoteConnectionFactory");
	ConnectionFactory connectionFactory = (ConnectionFactory) context.lookup(connectionFactoryString);
 
	String destinationString = System.getProperty("destination", "java:/jms/queue/queue");
	Destination destination = (Destination) context.lookup(destinationString);
 
	Connection connection = connectionFactory.createConnection(System.getProperty("username", "username"),
		System.getProperty("password", "password"));
	Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
	connection.start();
	MessageProducer producer = session.createProducer(destination);
	TextMessage message = session.createTextMessage();
	message.setText("Hola mundo");
	producer.send(message);
	connection.close();
 
} catch (Exception e) {
	e.printStackTrace();
}

Cabe aclarar que tengo también los archivos ejb-jar.xml y persistence.xml (este último es para el datasource y hibernate).

Les pego también el archivo jboss-ejb-client.properties:

endpoint.name=client-endpoint
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=localhost
remote.connection.default.port=8080
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false

Desde ya muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 3
Ha mantenido su posición en EJB (Enterprise Java Beans) (en relación al último mes)
Gráfica de EJB (Enterprise Java Beans)

Ayuda con NamingException en Wildfly10 para mensajería

Publicado por Agustin (2 intervenciones) el 28/11/2017 03:29:17
Buenas

Les comento cómo resolví el problema. Tuve que IMPORTAR la librería jboss-client.jar de Wildfly al PROYECTO EAR.

Esto me solucionó MENSAJERÍA para enviar TextMessage, para el caso de enviar Object Message, tuve que importar otras librerías del Wildfly (me indicaba cuáles eran la consola cuando corría el método).

Esto le servirá a muchos usuarios, dado que la respuesta no la conseguí en NINGÚN foro, y fue la ÚNICA SOLUCIÓN al problema de fallo en mensajería.

Éxitos a todos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar