SQLException:非法连接端口值$ {env.OPENSHIFT_MYSQL_DB_PORT}

时间:2013-02-06 01:30:52

标签: database spring hibernate openshift

我正在尝试将一个相当基本的Spring + Hibernate Web应用程序部署到我新创建的应用程序中。 (我是openshift的新手)。

我已经从知识库中跟踪了this示例。

但在部署应用程序之后我得到了

..
java.sql.SQLException: Illegal connection port value '${env.OPENSHIFT_MYSQL_DB_PORT}'
    com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
    com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
    com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
    com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2018)
..

我在applicationcontext.xml

中定义了数据源

这是我在applicationContext.xml中定义deta shource的部分(eli是数据库名称)

<bean id="dataSource"
          class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
          p:driverClassName="${jdbc.driverClassName}"
          p:url="jdbc:mysql://${env.OPENSHIFT_MYSQL_DB_HOST}:${env.OPENSHIFT_MYSQL_DB_PORT}/eli" p:username="${jdbc.username}"
          p:password="${jdbc.password}"/>

知道我做错了吗?

由于

1 个答案:

答案 0 :(得分:1)

您收到的错误似乎表明Spring XML配置中的属性替换字符串实际上并未由Spring处理。您可以在配置中添加PropertyPlaceholderConfigurer以启用系统环境中的处理:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="searchSystemEnvironment" value="true" />
  ...
</bean>