java - Spring JNDI-查找三元运算符

标签 java spring jndi

我的网络应用程序中有 XML 配置。我在此文件中有以下标记:

<jee:jndi-lookup id="my.super.queue" resource-ref="true" 
     jndi-name="#{ ${my.flag} ? ${jms.my.queue1} : ${jms.my.queue2} }"/>

这个想法是根据属性中的标志启动队列。但是,jee:jndi 似乎不支持三元运算符。我有以下错误:

Error creating bean with name 'my.super.queue': Initialization of bean failed
Property or field 'jms' cannot be found on object of type 'org.springframework.beans.factory.config.BeanExpressionContext' - maybe not public?
<jee:jndi-lookup id="my.super.queue" resource-ref="true" jndi-name="#{ ${my.flag} ? ${jms.my.queue1} : ${jms.my.queue2} }"/>

如何解决?

最佳答案

已修复。只需要在运算符中添加引号 ' 即可:

<jee:jndi-lookup id="my.super.queue" resource-ref="true" 
     jndi-name="#{ ${my.flag} ? '${jms.my.queue1}' : '${jms.my.queue2}' }"/>

仅此而已。谢谢@M。 Denium 的灵感。

关于java - Spring JNDI-查找三元运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43138322/

相关文章:

java - 发送特定大小的数据时出现 BufferOverflowException

java - 确保当一个线程更新 map 时,另一个线程将看到此更新的最简单方法是什么?

java - spring中如何从jsp插入文件?

java - JNDI 查找是否保持连接打开 - 这就是我的负载平衡被破坏的原因吗?

java - Jndi Spring 问题

java - 从服务器下载 AngularJS 中的字节数组作为原始文件

java - 在 iText7 的自定义签名外观签名中使用字体会破坏 PDF/A 一致性?

java - Spring SpEL - 仅当值不为空时设置属性

java - 如何在过滤器中添加请求 header 并在 Controller 中获取该 header

java - Spring Boot 有什么方法可以定义 JTA 资源吗?