【问题标题】:CamelContext is shutting down while initializing the PooledConnectionFactoryCamelContext 在初始化 PooledConnectionFactory 时正在关闭
【发布时间】:2017-11-09 22:44:07
【问题描述】:

我正在尝试通过camel cdi 使用org.apache.activemq.pool.PooledConnectionFactor 初始化ActiveMQComponent。 使用ActiveMQConnectionFactory,一切正常。

我还添加了一些日志,并注意到当PooledConnectionFactoryCamelContext 正在关闭时。在构建和部署时 我用JMSConfigurations 等尝试了很多不同的方法。但仍然没有任何运气。

这可能是什么原因?

错误日志。

17:45:07,043 INFO  [org.apache.camel.impl.DefaultCamelContext] (MSC service thread 1-6) Apache Camel 2.19.3 (CamelContext: camel_cdi_context) is starting
17:45:07,044 INFO  [org.apache.camel.management.ManagedManagementStrategy] (MSC service thread 1-6) JMX is enabled
17:45:07,064 INFO  [org.wildfly.extension.camel] (MSC service thread 1-6) Camel context starting: camel_cdi_context
17:45:07,064 INFO  [org.wildfly.extension.camel] (MSC service thread 1-2) Bound camel naming object: java:jboss/camel/context/camel_cdi_context
17:45:07,095 INFO  [org.apache.camel.impl.DefaultRuntimeEndpointRegistry] (MSC service thread 1-6) Runtime endpoint registry is in extended mode gathering usage statistics of all incoming and outgoing endpoints (cache limit: 1000)
17:45:07,131 INFO  [stdout] (MSC service thread 1-6) Creating ActiveMQ Component
17:45:07,131 INFO  [stdout] (MSC service thread 1-6) createActiveMQComponent().connectionFactory : org.apache.activemq.ActiveMQConnectionFactory@6e871efa
17:45:07,131 INFO  [stdout] (MSC service thread 1-6) createActiveMQComponent(). : mark-1
17:45:07,135 INFO  [org.apache.camel.impl.DefaultCamelContext] (MSC service thread 1-6) Apache Camel 2.19.3 (CamelContext: camel_cdi_context) is shutting down
17:45:07,137 INFO  [org.wildfly.extension.camel] (MSC service thread 1-6) Camel context stopped: camel_cdi_context

我可以继续使用 ActiveMQConnectionFactory 并以不同的方式处理 maximumConnections / timeouts。 但我喜欢拥有最好的。

ActiveMQComponentProducer.java

@ApplicationScoped
public class ActiveMQComponentProducer {

    @Produces
    @Named("activemqx")
    public ActiveMQComponent createActiveMQComponent() {

        System.out.println("Creating ActiveMQ Component");

        ActiveMQComponent activeMQComponent = ActiveMQComponent.activeMQComponent();
        String connectionString = "tcp://localhost:61616";

        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(connectionString);
        System.out.println("createActiveMQComponent().connectionFactory : " + connectionFactory);

        PooledConnectionFactory pooledConnectionFactory = null;
        System.out.println("createActiveMQComponent(). : mark-1");

        try {
            pooledConnectionFactory = new PooledConnectionFactory(connectionFactory);
        } catch (Exception e) {
            System.out.println("createActiveMQComponent(). : "+e);
        }
        System.out.println("createActiveMQComponent(). : mark-2");

        activeMQComponent.setConnectionFactory(pooledConnectionFactory);
        return activeMQComponent;
    }

}
  • 骆驼版:2.19
  • Wildfly 版本:10.1.0
  • 骆驼补丁版本:wildfly-camel-patch-4.9.0

【问题讨论】:

    标签: java apache-camel activemq connection-pooling wildfly-10


    【解决方案1】:

    您很可能遇到了类加载问题。

    在 WildFly-Camel 4.9.0 版本中,PooledConnectionFactory 不会自动导出到部署类路径中。此问题已在未来版本中修复,并由此问题跟踪:

    https://github.com/wildfly-extras/wildfly-camel/issues/2199

    作为一种解决方法,您可以通过 jboss-deployment-structure.xml 描述符将 org.apache.activemq 的模块依赖项添加到您的部署中。将其放置在 META-INF 中用于 JAR 部署或 WEB-INF 用于 WAR 部署。

    <jboss-deployment-structure>
        <deployment>
            <dependencies>
                <module name="org.apache.activemq" />
            </dependencies>
        </deployment>
    </jboss-deployment-structure>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-14
      • 2022-11-07
      • 1970-01-01
      • 1970-01-01
      • 2014-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多