当前位置: 代码迷 >> J2EE >> Windows的记事本修改java的.properties属性文件有关问题
  详细解决方案

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

热度:130   发布时间:2016-04-22 01:31:20.0
Windows的记事本修改java的.properties属性文件问题
事情发生在一个乌云蔽日的下午、
原工程放在服务器(系统是: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文件内容如下:
XML code
jndi.name=java:/comp/env/jdbc/infobankjdbc.driverClassName=oracle.jdbc.OracleDriverjdbc.url=jdbc:oracle:thin:@10.11.0.185:1521:CRMjdbc.username=....不好说....jdbc.password=....不好说....dbcp.initialSize=10dbcp.maxActive=100dbcp.maxIdle=10dbcp.minIdle=1dbcp.maxWait=5000


XML code
<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就不认识它了呢???

------解决方案--------------------
这个没关系啊、、、我刚试了、、我的tomcat就认得!~~~
你的情况 坐等大牛吧
------解决方案--------------------
是不是编码的问题,用记事本打开在保存编码就变了。。。
------解决方案--------------------
window的记事本默认保存的编码格式是ansi码 如果你的项目是utf-8, 你可以另存为 选择utf-8 无bom格式 在试试
------解决方案--------------------
properties 文件当编码不对时会出现丢内容,我遇到过。
你这应该是编码的错。

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

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