0

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

我从知识库中遵循了这个例子。

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

..
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 中定义了数据源

这是我定义 deta shource 的 applicationContext.xml 中的部分(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}"/>

知道我做错了什么吗?

谢谢

4

1 回答 1

1

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

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="searchSystemEnvironment" value="true" />
  ...
</bean>
于 2013-02-21T12:59:47.877 回答