在我的开发设置中,我为 Wildfly 10 部署了资源适配器。到目前为止它似乎工作正常,但我收到如下警告:
14:57:44,007 WARN [org.jboss.as.connector.deployment]
(MSC service thread 1-2)
WFLYJCA0028: @ConnectionFactoryDefinition will have limited management:
java:comp/env/eis/TestRAConnectionFactory
搜索 WFLYJCA0028
我发现它是 used to be JBAS010427
之后搜索,找到了 this post来自 Jesper Pedersen 的 2014 年:
Because @ConnectionFactoryDefinition is a broken concept, and is only meant for development. All the settings for the JCA container isn't/can't be exposed, and hence it is limited in the management view too (use :resource-adapters: instead).
Do NOT use @ConnectionFactoryDefinition for production environments ! You have been warned
不幸的是,除了“这是一个破烂的概念”之外,它没有解释问题(或者我不明白),而且我找不到任何关于潜在问题以及如何正确创建 JCA 连接的更详细的解释代替工厂。
最佳答案
我什至犹豫了一会儿是否将其作为答案,因为我觉得好像答案应该以非常明确的细节明确地回答问题,但我无法给出。对于可能偶然发现不喜欢 ConnectionFactoryDefinition
注释的 JBoss 的任何其他人,我可以提供一些细微的见解。
看起来(至少在 JBoss 8 Wildfly 中,我亲身经历过)JBoss 实际上会阻止 ResourceAdapter
在使用 ConnectionFactoryDefinition
注释时启动.结果,rar 将“成功”部署,随后部署的类似注解驱动的 EJB(即 MessageDriven 、 ActivationConfigProperty )依赖于入站 JCA,将在 EAR 部署期间开始失败,并提示 ear_name# rar_name 不可用。
与问题的最后一点相关
and how to properly create a JCA connection factory
我通过反复试验终于有了突破,用一个ra.xml和ironjacamar.xml定义了ConnectionFactoryDefinition
、Connection
注解中另外指定的信息和 ConnectionDefinition
。将信息转录到相应区域的那些文件后,我能够让我的 ResourceAdapter
重新开始。
我希望我能提供更多信息,但我对为什么 JBoss 也会限制该注释感到困惑。我希望至少这会为其他人指明正确的方向,并且他们不会浪费与我弄清楚这是 JBoss 不喜欢的注释而不是您的代码一样多的时间。
关于java - @ConnectionFactoryDefinition(在 WildFly 中)有什么问题,我应该改用什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40927589/