事情发生在一个乌云蔽日的下午、
原工程放在服务器(系统是: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就不认识它了呢???
原工程放在服务器(系统是: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就不认识它了呢???
你的情况 坐等大牛吧
这种情况也考虑过、试过了、不过没有效果!
好像还不是这个原因呢!我刚刚试过了一下
信息: 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'
马上就跟我翻脸!
它继续翻脸!
我就用老招数对付它、从本地拷贝进来、它又乖乖的了!
你这应该是编码的错。
除非你用InputStreamReader指定具体的编码如果不想改程序,jdk\bin下面可以找到一个native2ascii.exe
用native2ascii.exe -encoding gbk c:\11.properties c:\22.properties的形式,把原来的11.properties处理一下,再拿去部署