如何在Jboss中部署pulsarra.rar?

问题描述 投票:0回答:1

我正在尝试在 JBoss 中部署和配置 DataStax Apache Pulsar JMS 客户端资源适配器,但出现以下错误:

2023-08-28 11:21:30,684 INFO  [org.jboss.weld.deployer] (MSC service thread 1-5) WFLYWELD0003: Processing weld deployment pulsarra.rar
2023-08-28 11:21:30,810 INFO  [io.jaegertracing.internal.JaegerTracer] (MSC service thread 1-5) No shutdown hook registered: Please call close() manually on application shutdown.
2023-08-28 11:21:30,848 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 83) WFLYCLINF0002: Started client-mappings cache from ejb container
2023-08-28 11:21:30,991 INFO  [com.datastax.oss.pulsar.jms.rar.PulsarResourceAdapter] (MSC service thread 1-3) setConfiguration {"brokerServiceUrl":"pulsar://localhost:6650","webServiceUrl":"http://localhost:8080"}
2023-08-28 11:21:31,002 INFO  [com.datastax.oss.pulsar.jms.rar.PulsarResourceAdapter] (MSC service thread 1-3) startPulsarConnectionFactory {"brokerServiceUrl":"pulsar://localhost:6650","webServiceUrl":"http://localhost:8080"}
2023-08-28 11:21:31,079 INFO  [io.smallrye.metrics] (MSC service thread 1-4) MicroProfile: Metrics activated
2023-08-28 11:21:31,305 WARN  [org.jboss.as.connector.deployers.RaXmlDeployer] (MSC service thread 1-3) IJ020013: Connection factory not bound: com.datastax.oss.pulsar.jms.rar.PulsarManagedConnectionFactory
2023-08-28 11:21:31,306 INFO  [org.jboss.as.connector.deployers.RaXmlDeployer] (MSC service thread 1-3) IJ020015: Connection factory not specification compliant. See 6.5.1.3 for additional details: com.datastax.oss.pulsar.jms.PulsarConnectionFactory
2023-08-28 11:21:31,314 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 83) MSC000001: Failed to start service jboss.ra.deployment."pulsarra.rar_PulsarRA": org.jboss.msc.service.StartException in service jboss.ra.deployment."pulsarra.rar_PulsarRA": WFLYJCA0046: Failed to start RA deployment [pulsarra.rar]
    at [email protected]//org.jboss.as.connector.services.resourceadapters.deployment.AbstractResourceAdapterDeploymentService$2.run(AbstractResourceAdapterDeploymentService.java:340)
    at [email protected]//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
    at [email protected]//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
    at [email protected]//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
    at [email protected]//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
    at java.base/java.lang.Thread.run(Thread.java:829)
    at [email protected]//org.jboss.threads.JBossThread.run(JBossThread.java:485)
Caused by: org.jboss.jca.deployers.common.DeployException: IJ020056: Deployment failed: file:/home/manuel/tools/jboss-eap-7.3/standalone/tmp/vfs/temp/temp7ade9d00bcac3529/content-6b5e2cac829e1ded/contents/
    at [email protected]//org.jboss.jca.deployers.common.AbstractResourceAdapterDeployer.createObjectsAndInjectValue(AbstractResourceAdapterDeployer.java:2058)
    at [email protected]//org.jboss.as.connector.services.resourceadapters.deployment.ResourceAdapterXmlDeploymentService$WildFlyRaXmlDeployer.doDeploy(ResourceAdapterXmlDeploymentService.java:190)
    at [email protected]//org.jboss.as.connector.services.resourceadapters.deployment.ResourceAdapterXmlDeploymentService.start(ResourceAdapterXmlDeploymentService.java:128)
    at [email protected]//org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1739)
    at [email protected]//org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1701)
    at [email protected]//org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1559)
    at [email protected]//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
    at [email protected]//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
    at [email protected]//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
    at [email protected]//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
    at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.jboss.jca.validator.ValidatorException: Severity: ERROR
Section: 17.5.1.1
Description: ConnectionFactory must implement javax.resource.Referenceable
Code: com.datastax.oss.pulsar.jms.PulsarConnectionFactory

    ... 11 more


我的程序是:

1-部署pulsarra.rar

2-配置资源适配器(配置->子系统->资源适配器->添加资源适配器)

到目前为止没有错误。

3-指定连接定义(资源适配器 -> PulsarRA -> 连接定义 -> 添加)

现在,当我重新启动 JBoss 时,我收到显示的错误。

JBoss 正在等待 javax.resource.cci.ConnectionFactory,但我正在传递 javax.jms.ConnectionFactory。

来自 ra.xml:

 <connectionfactory-interface>javax.jms.TopicConnectionFactory</connectionfactory-interface>
 <connectionfactory-impl-class>com.datastax.oss.pulsar.jms.PulsarConnectionFactory</connectionfactory-impl-class>
 <connection-interface>javax.jms.TopicConnection</connection-interface>
 <connection-impl-class>com.datastax.oss.pulsar.jms.PulsarConnection</connection-impl-class>

我不知道我做错了什么。

jboss jms datastax pulsar
1个回答
0
投票

事实上,ironjacmar 1.4.19 jboss 子模块(实现 Jakarta Connectors 1.7)的连接工厂Validator验证规则,要求提供的连接工厂实现Referenceable(例如通过实现) javax.resource.cci.ConnectionFactory)。 pulsar-jms repo 中的类似乎没有实现

javax.resource.Referencable
或在任何地方使用
javax.resource.cci.*

我认为向 pulsar-jms 问题部分提出有关上述问题的问题是合理的。

标题可以是:“连接工厂不符合规范。有关其他详细信息,请参阅 6.5.1.3:

com.datastax.oss.pulsar.jms.PulsarConnectionFactory

您可以注意到上面引用的部分(来自 Jakarta Connectors 1.7)内容如下:

连接工厂实现类必须 实现接口 javax.resource.Referenceable。请注意, javax.resource.Referenceable 接口扩展了 javax.naming.Referenceable 接口。请参阅第 20.6.3 节“场景: 有关 JNDI 参考机制的详细信息,请参阅第 20-19 页。

但是提供的连接工厂没有实现它,导致您提供的异常。

© www.soinside.com 2019 - 2024. All rights reserved.