I can not make it work even in http.
I followed all the documentation I found on the websites of Wildfly and HornetQ.
I configured standalone.xml as more important excerpts below:
<subsystem xmlns="urn:jboss:domain:messaging:2.0">
<hornetq-server>
<journal-file-size>102400</journal-file-size>
<connectors>
<http-connector name="http-connector" socket-binding="http">
<param key="http-upgrade-endpoint" value="http-acceptor"/>
</http-connector>
<http-connector name="http-connector-throughput" socket-binding="http">
<param key="http-upgrade-endpoint" value="http-acceptor-throughput"/>
<param key="batch-delay" value="50"/>
</http-connector>
</connectors>
<acceptors>
<http-acceptor http-listener="default" name="http-acceptor"/>
<http-acceptor http-listener="default" name="http-acceptor-throughput">
<param key="batch-delay" value="50"/>
<param key="direct-deliver" value="false"/>
</http-acceptor>
</acceptors>
<security-settings>
<security-setting match="#">
<permission type="send" roles="JMSRole"/>
<permission type="consume" roles="JMSRole"/>
<permission type="createNonDurableQueue" roles="JMSRole"/>
<permission type="deleteNonDurableQueue" roles="JMSRole"/>
</security-setting>
</security-settings>
<jms-connection-factories>
<connection-factory name="RemoteConnectionFactory">
<connectors>
<connector-ref connector-name="http-connector"/>
</connectors>
<entries>
<entry name="java:jboss/exported/jms/RemoteConnectionFactory"/>
</entries>
<ha>true</ha>
<block-on-acknowledge>true</block-on-acknowledge>
<retry-interval>1000</retry-interval>
<retry-interval-multiplier>1.0</retry-interval-multiplier>
<reconnect-attempts>-1</reconnect-attempts>
</connection-factory>
</jms-connection-factories>
<jms-destinations>
<jms-queue name="JMSOrderDownloadPage">
<entry name="java:/jms/queue/JMSOrderDownloadPage"/>
<durable>true</durable>
<entry name="java:jboss/exported/jms/queue/JMSOrderDownloadPage"/>
</jms-queue>
<jms-queue name="DLQ">
<entry name="java:/jms/queue/DLQ"/>
<durable>true</durable>
</jms-queue>
</jms-destinations>
</hornetq-server>
</subsystem>
I tried running the code below. Everything works correctly yet I ask the connectionFactory to create a new connection.
HornetQConnectionFactory connectionFactory = null;
Connection connection = null;
Session session = null;
MessageProducer producer = null;
MessageConsumer consumer = null;
Destination destination = null;
TextMessage message = null;
Context context = null;
try {
// Set up the context for the JNDI lookup
final Properties env = new Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
env.put(Context.PROVIDER_URL, "http-remoting://www.xyz.com:8080");
env.put(Context.SECURITY_PRINCIPAL, "jmsuser");
env.put(Context.SECURITY_CREDENTIALS, "pass1");
env.put("jboss.naming.client.ejb.context", true);
context = new InitialContext(env);
connectionFactory = (HornetQConnectionFactory) context.lookup("jms/RemoteConnectionFactory"); //The lockup function correctly. Including authentication.
destination = (Destination) context.lookup("java:/jms/queue/JMSOrderDownloadPage");
connection = connectionFactory.createConnection("jmsuser", "pass1"); //At this time the error occurs following below, after the code.
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
producer = session.createProducer(destination);
connection.start();
int count = Integer.parseInt("1");
String content = System.getProperty("message.content", "Hello, World!");
for (int i = 0; i < count; i++) {
message = session.createTextMessage(content);
producer.send(message);
}
} catch (Exception e) {
e.printStackTrace();
}
The StackTrace is:
javax.jms.JMSException: Failed to create session factory at org.hornetq.jms.client.HornetQConnectionFactory.createConnectionInternal(HornetQConnectionFactory.java:673) at org.hornetq.jms.client.HornetQConnectionFactory.createConnection(HornetQConnectionFactory.java:112) at br.com.voelivre.finder.queue.search.alert.Start.main(Start.java:106) Caused by: HornetQNotConnectedException[errorType=NOT_CONNECTED message=HQ119007: Cannot connect to server(s). Tried with all available servers.] at org.hornetq.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:905) at org.hornetq.jms.client.HornetQConnectionFactory.createConnectionInternal(HornetQConnectionFactory.java:669) ... 2 more
I really appreciate any help.