1.远程部署项目到其他服务器,可能是tomcat设置账户原因,用访问tomcat部署没有成功,改为SSH密钥传输项目war包到远程服务器,再执行shell脚本部署项目;
2.因为要进行多环境的资源文件配置:
在引用资源文件的时候,jdbc资源文件单独引用,其他的系统资源文件一起引用。在部署到远程服务器之后出现:找不到jdbc.driver;
Could not resolve placeholder 'jdbc.driver' in string value "${jdbc.driver}"
这个时候想起来在看spring源码的时候:
Spring容器采用反射扫描的发现机制,在探测到Spring容器中有一个
org.springframework.beans.factory.config.PropertyPlaceholderConfigurer的Bean
就会停止对剩余PropertyPlaceholderConfigurer的扫描
(Spring 3.1已经使用PropertySourcesPlaceholderConfigurer替代PropertyPlaceholderConfigurer了)。
而<context:property-placeholder/>这个基于命名空间的配置,
其实内部就是创建一个PropertyPlaceholderConfigurer Bean而已。
换句话说,即Spring容器仅允许最多定义一个PropertyPlaceholderConfigurer(或<context:property-placeholder/>),
其余的会被Spring忽略掉(其实Spring如果提供一个警告就好了)。
把资源文件统一引用,问题解决。