我在获取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标签注入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" />
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句