问题:当我在我的上下文 XML 中嵌入环境变量时,当我在本地运行时它们会被扩展。但是当我在 OpenShift 上部署时,他们没有。他们决定为空。
配置:web.xml:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/springapp.xml</param-value>
</context-param>
springapp.xml:
<bean id="datasource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://#{systemProperties['OPENSHIFT_MYSQL_DB_HOST']}:#{systemProperties['OPENSHIFT_MYSQL_DB_PORT']}/prepare?characterEncoding=UTF-8"/>
<property name="username" value="AAA"/>
<property name="password" value="BBB"/>
</bean>
pom.xml:
- 春季版 3.2.0.RELEASE
本地开发环境:
- Intellij(配置中设置的环境变量)
- 雄猫7
OpenShift 环境:
- 雄猫 7 (JBoss EWS 2.0)
- OpenShift 设置的环境变量。我用“env”命令确认了这些值。
OPENSHIFT_MYSQL_DB_PORT=3306
OPENSHIFT_MYSQL_DB_HOST=127.3.xxx.yyy
OpenShift 上的消息(注意服务器和端口为空):
org.apache.commons.dbcp.SQLNestedException:无法为连接 URL 'jdbc:mysql://:/prepare?characterEncoding=UTF-8' 创建类 'com.mysql.jdbc.Driver' 的 JDBC 驱动程序