【问题标题】:Why do I need "java:/" prefix for @Resource injection in Wildfly 12?为什么Wildfly 12 中的@Resource 注入需要“java:/”前缀?
【发布时间】:2018-05-02 10:06:24
【问题描述】:

从在 Weblogic 12 上运行的 EAR 开始,我还需要让这个应用程序与 Wildfly 12 一起工作。

我们有一些 JMS 队列,我们​​像这样在 Weblogic 上注入:

@Resource(lookup = "jms/Queues/MYQUEUE")
private Queue destination;

@Resource(lookup = "jms/QueueConnectionFactories/MYQUEUECF")
private QueueConnectionFactory connectionFactory;

使用 Wildfly,我在standalone-full.xml 中定义了队列

<jms-queue name="MYQUEUE" entries="jms/Queues/MYQUEUE" durable="true"/>
<connection-factory name="MYQUEUECF" entries="jms/QueueConnectionFactories/MYQUEUECF" connectors="in-vm"/>

但是在服务器启动时注入失败。

service jboss.naming.context.java.comp.XXX.ejb.JMSMessageProducer.env.jms.Queues.MYQUEUE (missing) dependents: [service jboss.naming.context.java.comp.XXX.ejb.JMSMessageProducer.env."com.xxx.webservices.components.communication.ejb.JMSMessageProducerBean".destination] [[...]

要解决这个问题,我需要使用

@Resource(lookup = "java:/jms/Queues/MYQUEUE")
private Queue destination;

没有“java:/”前缀,注入将不起作用。

不幸的是,这不适用于 Weblogic(这是领先/高效的系统)。

由于我无法更改 weblogic 配置,我必须使我的 Wildfly 配置与其兼容或更改注入代码,以便它在两个应用服务器上都能正常工作。

为什么Wildfly 需要在@Resource 注解中使用这个前缀才能正确注入?

有没有办法改变它的配置,让代码在没有“java:/”前缀的情况下工作?

提前致谢 ;-)

标记。

PS:当我删除 @Resource 注释并进行上下文查找时,它会在没有“java:/”的情况下成功 - 奇怪 ;-)

【问题讨论】:

  • 好问题...但是您是否在 Wildfly 上进行测试然后部署到 Weblogic?
  • 啊,你认为我们的开发环境是 Wildfly 而产品是 Weblogic?不——我们正在评估 Wildfly 作为替代目标,目前现有的代码库应该可以在两个应用服务器上运行。稍后我们将有两个生产环境 - 旧的使用 Weblogic,另一个使用 Wildfly。

标签: java jakarta-ee jboss resources wildfly


【解决方案1】:

请看以下参考:

https://developer.jboss.org/thread/261022

如果在其中找到,我将引用 sn-p:

<?xml version="1.0" encoding="UTF-8"?>  
<jboss-web>  
  <resource-ref>  
    <res-ref-name>jdbc/fs</res-ref-name>  
    <jndi-name>java:jboss/datasources/FS</jndi-name>  
  </resource-ref>  
</jboss-web>  

使用上面的部署描述符,您可以说某个资源名称映射到您喜欢的任何 jndi 名称。 因此,有了这个,您可以使用资源注释注入和在 weblogic 中工作的名称,并将它们映射到需要 java://

的 tje wildfly jndi 名称。

代码。

【讨论】:

    猜你喜欢
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多