我有一个Spring设置如下。
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">org.jnp.interfaces.NamingContextFactory</prop>
<prop key="java.naming.provider.url">jnp://jndi.myURL.com:1099</prop>
<prop key="java.naming.factory.url.pkgs">org.jboss.naming:org.jnp.interfaces</prop>
<prop key="jnp.disableDiscovery">true</prop>
</props>
</property>
</bean>
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc/mysql"/><!-- DataSource Name -->
<property name="resourceRef" value="false"/>
<property name="jndiTemplate" ref="jndiTemplate" />
</bean>
我想以JEE标记格式转换它。
我想将我的DataSrouce定义为
<jee:jndi-lookup jndi-name="jdbc/mysql" resource-ref="false" >
<jee:environment>
....
</jee:environment>
</jee:jndi-lookup>
有没有办法定义它。
答案 0 :(得分:4)
您可以与以下人员分享定义:
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment" ref="remoteEnv" />
</bean>
<jee:jndi-lookup id="wcDataSource" jndi-name="jdbc/wc-mysql" resource-ref="false" environment-ref="remoteEnv" />
<util:properties id="remoteEnv">
<prop key="java.naming.provider.url">jnp://jndi.myURL.me:1099</prop>
<prop key="java.naming.factory.url.pkgs">org.jboss.naming:org.jnp.interfaces</prop>
<prop key="java.naming.factory.initial">org.jnp.interfaces.NamingContextFactory</prop>
<prop key="jnp.disableDiscovery">true</prop>
</util:properties>
这样,如果需要,你仍然可以在其他地方引用jndiTemplate。
答案 1 :(得分:2)
感谢您的时间,我发现了这个问题。我发现了这个问题,但并没有真正找到正确的解决方案。以下是适合我的代码片段。
<jee:jndi-lookup id="wcDataSource" jndi-name="jdbc/wc-mysql" resource-ref="false">
<jee:environment>
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=jnp://jndi.myURL.me:1099
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
jnp.disableDiscovery=true
</jee:environment>
</jee:jndi-lookup>