我无法让 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 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>
不过,这好像没什么影响。
最佳答案
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" />
使用spring bean或jee标签注入(inject)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" />
关于spring - 在Spring/Tomcat中,jndi查找是指哪个配置文件? :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26727441/