首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法解析占位符| Spring占位符

无法解析占位符| Spring占位符
EN

Stack Overflow用户
提问于 2014-01-30 00:44:12
回答 1查看 13K关注 0票数 4

我第一次尝试在我的应用程序中使用Spring <context:property-placeholder>,遇到了一些问题,我也已经尝试了很多东西,而且在谷歌上似乎没有多少帖子。

我有一个web应用程序,需要传递一些关键字到底层类,我想使用占位符的same.Here是我的应用程序的结构

代码语言:javascript
复制
Main
  -java
  -resources
  -webapp

我在resource文件夹中有一个project.properties文件,这就是我尝试的方式

代码语言:javascript
复制
<context:property-placeholder location="classpath:resources/project.properties" />
<beans:bean id="reCaptcha" class="net.tanesha.recaptcha.ReCaptchaImpl">
  <beans:property name="privateKey" value="${demo.recapatcha_private_key}"/>
   <beans:property name="publicKey" value="${demo.recapatcha_public_key}"/>
</beans:bean>

但我在服务器启动时遇到以下异常

代码语言:javascript
复制
org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'reCaptcha' defined in ServletContext resource [/WEB-INF/spring/appServlet/servlet-context.xml]: Could not resolve placeholder 'demo.recapatcha_private_key'

我已经尝试将project.properties文件放在不同的位置,包括WEB-INF/classes内部和webapp中的几个其他位置,但没有success.not确定我做错了什么

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-30 01:39:32

听起来像是在使用Maven项目结构。将您的project.properties放在src/main/resources中是资源文件的正常做法-因为Maven会自动将这些文件传输到最终工件的类路径-这将是您的war中的/WEB-INF/classes

但是,您应该修改<context:property-placeholder>标记的location属性并删除resources文件夹前缀。在构建war文件时,resources文件夹本身不会传输到/WEB-INF/classes,因此不会成为运行时类路径的一部分。只传输文件夹内容。

代码语言:javascript
复制
<context:property-placeholder location="classpath:project.properties" />
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21437246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档