Windows的记事本修改java的.properties属性文件问题

BUG胡汉三
博客专家认证
2012-05-10 09:34:32
事情发生在一个乌云蔽日的下午、
原工程放在服务器(系统是:Windows Server 2003)
神马问题也木有、然后俺一不小心用记事本打开了java的.properties文件
修改了数据源的一些配置、重启后、突然给出如下错误:

信息: Initializing Spring root WebApplicationContext
2012-5-9 16:17:36 org.apache.catalina.core.StandardContext listenerStart
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'DataSource' defined in file [D:\apache-tomcat-6.0.29\webapps\module-infobank\WEB-INF\classes\com\chinaboxun\infobank\config\applicationContext-infobank-core.xml]: Could not resolve placeholder 'jndi.name'


当时我就晕了、肿么会找不到jndi.name呢!
属性文件内容跟applicationContext-infobank-core.xml文件内容如下:

jndi.name=java:/comp/env/jdbc/infobank
jdbc.driverClassName=oracle.jdbc.OracleDriver
jdbc.url=jdbc:oracle:thin:@10.11.0.185:1521:CRM
jdbc.username=....不好说....
jdbc.password=....不好说....
dbcp.initialSize=10
dbcp.maxActive=100
dbcp.maxIdle=10
dbcp.minIdle=1
dbcp.maxWait=5000



<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:com/chinaboxun/infobank/config/infobank.properties"/>
</bean>

<bean id="DataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="${jndi.name}"/>
</bean>


于是满世界的google、baidu到最后当然是木有结果了!
我说我本地又是OK的、以前服务器也是OK的!
当时就觉得是属性文件出了什么问题、难道单词错了、仔细对照、硬是没发现!
后来、直接把本地的属性文件改好复制到服务器上去、这样就没错了!


我很疑惑、希望大牛解惑!
这是什么原因呢、为什么用记事本修改过后、Tomcat6就不认识它了呢???
...全文
620 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
r280881872 2012-05-10
  • 打赏
  • 举报
回复
properties 文件当编码不对时会出现丢内容,我遇到过。
你这应该是编码的错。
BUG胡汉三 2012-05-10
  • 打赏
  • 举报
回复
于是、用了3楼的方法、另存为、编码格式为UTF-8!
它继续翻脸!
我就用老招数对付它、从本地拷贝进来、它又乖乖的了!
BUG胡汉三 2012-05-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

window的记事本默认保存的编码格式是ansi码 如果你的项目是utf-8, 你可以另存为 选择utf-8 无bom格式 在试试
[/Quote]

这种情况也考虑过、试过了、不过没有效果!
好像还不是这个原因呢!





[Quote=引用 1 楼 的回复:]

这个没关系啊、、、我刚试了、、我的tomcat就认得!~~~
你的情况 坐等大牛吧
[/Quote]
我刚刚试过了一下

信息: Initializing Spring root WebApplicationContext
2012-5-10 9:54:43 org.apache.catalina.core.StandardContext listenerStart
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'DataSource' defined in file [D:\apache-tomcat-6.0.29\webapps\module-infobank\WEB-INF\classes\com\chinaboxun\infobank\config\applicationContext-infobank-core.xml]: Could not resolve placeholder 'jndi.name'

马上就跟我翻脸!
KingViker 2012-05-10
  • 打赏
  • 举报
回复
window的记事本默认保存的编码格式是ansi码 如果你的项目是utf-8, 你可以另存为 选择utf-8 无bom格式 在试试
zhaoct 2012-05-10
  • 打赏
  • 举报
回复
是不是编码的问题,用记事本打开在保存编码就变了。。。
充电中 2012-05-10
  • 打赏
  • 举报
回复
这个没关系啊、、、我刚试了、、我的tomcat就认得!~~~
你的情况 坐等大牛吧
BUG胡汉三 2012-05-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

Properties 默认使用ISO8859-1
除非你用InputStreamReader指定具体的编码

如果不想改程序,jdk\bin下面可以找到一个native2ascii.exe
用native2ascii.exe -encoding gbk c:\11.properties c:\22.properties的形式,把原来的11.properties处理一下,再拿去部署
[/Quote]
谢谢!
abc130314 2012-05-10
  • 打赏
  • 举报
回复
Properties 默认使用ISO8859-1
除非你用InputStreamReader指定具体的编码

如果不想改程序,jdk\bin下面可以找到一个native2ascii.exe
用native2ascii.exe -encoding gbk c:\11.properties c:\22.properties的形式,把原来的11.properties处理一下,再拿去部署

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧