我想利用這樣的事情是工作在Grails的resource.xml(標準的Spring XML的東西)OK:如何在Grails resources.groovy中編寫相當於Spring的jee:jndi-lookup?
<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>
,並把它變成Grails的豆建設者DSL在resources.groovy。我試過以下的組合(基本上是試錯法來看看,如果我能得到它的工作,沒有做):
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查找設置好,並且是有效的DSL,但環境(JndiTemplate類型的東西)沒有值(java.naming.factory.initial等)我設置抓住遠程InitialContext 。