【发布时间】:2011-11-04 14:33:58
【问题描述】:
我想采用在 Grails 的 resource.xml(标准 Spring xml 内容)中可以正常工作的类似内容:
<jee:jndi-lookup id="remoteConnectionFactory"
jndi-name="jms/WLQueueConnectionFactory" resource-ref="false">
<jee:environment>
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
java.naming.provider.url=t3://remote_uri:port/
</jee:environment>
</jee:jndi-lookup>
并将其转换为 resources.groovy 中的 Grails bean builder DSL。我已经尝试了以下组合(基本上是反复试验,看看我是否可以让它工作,没有一个):
ejbJndi(JndiTemplate)
{ bean ->
bean.scope = 'session'
environment = [
"java.naming.provider.url" : "t3://remote_uri:port/",
"java.naming.factory.initial" : "weblogic.jndi.WLInitialContextFactory"
]
}
xmlns jee:"http://www.springframework.org/schema/jee"
xmlns context:"http://www.springframework.org/schema/context"
jee.'jndi-lookup'(id:"jmsConnectionFactory", jndiName: "com.retailexp.jms.ConnectionFactory", lookupOnStartup: false,
proxyInterface: "javax.jms.ConnectionFactory", resourceRef: "false", 'jndi-environment': ref("ejbJndi")) {
cache = true
exposeAccessContext = true
jndiTemplate = ref("ejbJndi")
jndiEnvironment = [
"java.naming.provider.url" : "t3://remote_uri:port/",
"java.naming.factory.initial" : "weblogic.jndi.WLInitialContextFactory"
] as Properties
environmentRef = [
"java.naming.provider.url" : "t3://remote_uri:port/",
"java.naming.factory.initial" : "weblogic.jndi.WLInitialContextFactory"
]
environment = """
java.naming.provider.url=t3://remote_uri:port/
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
"""
同样,这些是我尝试过的各种组合,而不是最终代码的样子(我希望其中只有一个可以工作!)。正如你所看到的,我有点在黑暗中摸索。
jndi-lookup 设置正常并且是有效的 bean DSL,但环境(JndiTemplate 类型的东西)没有我设置为获取远程 InitialContext 的值(java.naming.factory.initial 等)。
【问题讨论】: