2014-11-04 77 views
1

我无法获取Spring/Tomcat应用程序来解析在应用程序上下文中显示为JndiFactoryObjectName bean属性的变量。以下是相关豆条目:在Spring/Tomcat中,jndi查找引用哪个配置文件?:

Caused by: javax.naming.NameNotFoundException: Name search.url is not bound in this Context 

在server.xml中此项不:

当我尝试在服务器上运行它,它与这个错误出现似乎帮助:

还有一个入口(如从Eclipse/STS看到的)

Tomcat v6.0 Server at localhost 
    Catalina 
    localhost 
     ROOT.xml 

<Context path="" reloadable="true" docBase="C:/myworkspace32/myAppName/WebContent"> 
     <ResourceLink global="search.url" name="search.url" type="java.lang.String"/> 
</Context> 

但是,这似乎没有影响。

+0

你可以分享与我们一起您的资源JNDI是如何在巡视Tomcat中配置的 – 2014-11-04 10:36:23

+0

资源JNDI通常在To MCAT? – 2014-11-04 12:16:03

+0

您可以在$ {catalina.home} \ conf \ context.xml中找到 – 2014-11-04 13:32:24

回答

2

下面是从Tomcat

  1. 访问JNDI资源创建JNDI资源server.xml中

    <Resource global="search.url" name="search.url" type="java.lang.String" /> 
    
  2. 步骤创建context.xml中的链接,这样所有的Web应用程序的访问。

    <ResourceLink name="search.url" global="search.url" auth="Container" type="java.lang.String" /> 
    
  3. 使用Spring Bean或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" /> 
    
1

按照Tomcat的JNDI的例子使用Spring

Spring配置

<?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中)

<Resource 
    name="yourDS" 
    type="javax.sql.DataSource" 
    username="****" 
    password="*****" 
    driverClassName="com.ibm.db2.jcc.DB2Driver" 
    url="*******" 
    maxActive="8" 
    maxIdle="4" 
    />