У меня есть два сервера Wildfly. Сервер A подключается к темам JMS и EJB на сервере B. Они оба являются Wildfly 8.2.0.Final.
Клиент (.war) на сервере A имеет следующие зависимости maven:
<dependency>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-ejb-client-bom</artifactId>
<version>8.2.0.Final</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-jms-client-bom</artifactId>
<version>8.2.0.Final</version>
<type>pom</type>
</dependency>
Можно ли избавиться от них и просто запросить загрузку определенных модулей Wildfly в jboss-deployment-structure.xml? Похоже, что эти зависимости Maven увеличат размер моего .war.
Спасибо!
Изменить:
Для поиска EJB на сервере B я использую метод "1. Клиентская библиотека EJB", описанный здесь: http://blog.akquinet.de/2014/09/26/jboss-eap-wildfly-three-ways-to-invoke-remote-ejbs/. Мой код очень похож на пример:
Properties prop = new Properties();
prop.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
Context context = new InitialContext(prop);
И:
remote.connections=default
remote.connection.default.host=127.0.0.1
remote.connection.default.port=8080
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOPLAINTEXT=false
remote.connection.default.connect.options.org.xnio.Options.SASL_DISALLOWED_MECHANISMS=${host.auth:JBOSS-LOCAL-USER}
remote.connection.default.username=${username}
remote.connection.default.password=${password}
И: context.lookup("ejb:/myapp/remote/calculator!de.akquinet.jbosscc.ejb.Calculator");
Чтобы подключиться к теме JMS на сервере B, я использую:
final InitialContext initialContext = new InitialContext( m_jndiProperties );
final ConnectionFactory connectionFactory = getConnectionFactory( initialContext );
final Connection connection = connectionFactory.createConnection( m_clientKey.getUsername(), m_clientKey.getPassword() );
try
{
final Topic updateTopic = getUpdateTopic( initialContext );
final TopicSubscriber subscriber;
if( m_isDurableSubscription )
{
connection.setClientID( m_clientKey.getJmsClientId() );
connection.setExceptionListener( m_exceptionListener );
final Session subscriberSession = connection.createSession( false, Session.AUTO_ACKNOWLEDGE );
subscriber = subscriberSession.createDurableSubscriber( updateTopic, m_clientKey.getJmsSubscriptionId() );
}
else
{
connection.setExceptionListener( m_exceptionListener );
final Session subscriberSession = connection.createSession( false, Session.AUTO_ACKNOWLEDGE );
subscriber = ( (TopicSession)subscriberSession ).createSubscriber( updateTopic );
}
connection.stop();
subscriber.setMessageListener( m_msgListener );
m_connection = connection;
maybeLogMessage( m_logger, GenericLogLevel.INFO, "Successfully subscribed to topic: '" + topicName + "'." );
}
catch( JMSException | NamingException e )
{
//noinspection ThrowableResultOfMethodCallIgnored
JMSCloser.close( connection );
throw e;
}
Код для этого поиска находится в библиотеке maven, которую использует мой .war. Библиотека как обычно помещается в WEB-INF/lib/.