在Spring/Tomcat中,jndi查找是指哪个配置文件

在Spring/Tomcat中,jndi查找是指哪个配置文件,spring,tomcat,jndi,Spring,Tomcat,Jndi,我很难让Spring/Tomcat应用程序解析在应用程序上下文中显示为JndiFactoryObjectName bean属性的变量。下面是相关的bean条目: 当我尝试在服务器上运行它时,会出现以下错误: Caused by: javax.naming.NameNotFoundException: Name search.url is not bound in this Context server.xml中的此项似乎没有帮助: 中还有一个条目(从Eclipse/STS中可以看到)

我很难让Spring/Tomcat应用程序解析在应用程序上下文中显示为JndiFactoryObjectName bean属性的变量。下面是相关的bean条目:

当我尝试在服务器上运行它时,会出现以下错误:

Caused by: javax.naming.NameNotFoundException: Name search.url is not bound in this Context
server.xml中的此项似乎没有帮助:

中还有一个条目(从Eclipse/STS中可以看到)

本地主机上的Tomcat v6.0服务器 卡塔琳娜 本地服务器 ROOT.xml
然而,这似乎没有影响

以带有Spring的Tomcat JNDI为例

弹簧配置

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">


<jee:jndi-lookup id="yourDS" jndi-name="java:comp/env/yourDS"/>

Tomcat配置(将其放入${catalina.home}\conf\context.xml中)


以下是从tomcat访问JNDI资源的步骤

  • 在server.xml中创建jndi资源

    <Resource global="search.url" name="search.url" type="java.lang.String" />
    
    
    
  • 在context.xml中创建链接,以便所有web应用程序都可以访问该链接

    <ResourceLink name="search.url"  global="search.url" auth="Container" type="java.lang.String" />
    
    
    
  • 使用Springbean或jee标记注入jndi

    <bean id="searchUrl" class="org.springframework.jndi.JndiObjectFactoryBean">
     <property name="jndiName" value="java:comp/env/search.url"/>
    </bean>
    
    
    
    使用jee contatiner标记可以避免指定环境,如下所示

     <jee:jndi-lookup id="searchUrl" jndi-name="search.url" expected-type="java.lang.String" />
    
    
    

  • 您可以与我们分享如何在tour Tomcat中配置您的资源JNDI hás在Tomcat中通常可以找到哪些资源JNDI?您可以在${catalina.home}\conf\context.xml中找到
    <bean id="searchUrl" class="org.springframework.jndi.JndiObjectFactoryBean">
     <property name="jndiName" value="java:comp/env/search.url"/>
    </bean>
    
     <jee:jndi-lookup id="searchUrl" jndi-name="search.url" expected-type="java.lang.String" />