索引 1 处片段中的非法字符:#{systemEnvironment['DATABASE_URL']} Heroku 上的 configurando 数据源
Illegal character in fragment at index 1: #{systemEnvironment['DATABASE_URL']} configurando datasource on Heroku
我按照 Heroku 的指南通过 spring xml 配置我的数据源。
这是我的配置:
<bean class="java.net.URI" id="dbUrl">
<constructor-arg value="#{systemEnvironment['DATABASE_URL']}" />
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close" lazy-init="true">
<property name="driverClassName" value="${datasource.driverClassName}" />
<property name="url"
value="#{ 'jdbc:postgresql://' + @dbUrl.getHost() + ':' + @dbUrl.getPort() + @dbUrl.getPath() }" />
<property name="username" value="#{ @dbUrl.getUserInfo().split(':')[0] }" />
<property name="password" value="#{ @dbUrl.getUserInfo().split(':')[1] }" />
<bean/>
这是错误:
BeanInstantiationException Could not instantiate bean class java.net.URI Constructor threw exception Illegal character in fragment at index 1: #{systemEnvironment['DATABASE_URL']}
我是不是漏了什么?
提前致谢!
我认为 SpEL 是在 Spring 3.x+ 中才引入的;如果你想使用它,你将需要更新,幸运的是 Spring 在向后兼容性方面相当出色,所以你可能很幸运,只需要更新依赖项。您也可以尝试简单的 ${DATABASE_URL}
语法,我认为基本的解析器会上升到系统变量来检查值。
我按照 Heroku 的指南通过 spring xml 配置我的数据源。
这是我的配置:
<bean class="java.net.URI" id="dbUrl">
<constructor-arg value="#{systemEnvironment['DATABASE_URL']}" />
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close" lazy-init="true">
<property name="driverClassName" value="${datasource.driverClassName}" />
<property name="url"
value="#{ 'jdbc:postgresql://' + @dbUrl.getHost() + ':' + @dbUrl.getPort() + @dbUrl.getPath() }" />
<property name="username" value="#{ @dbUrl.getUserInfo().split(':')[0] }" />
<property name="password" value="#{ @dbUrl.getUserInfo().split(':')[1] }" />
<bean/>
这是错误:
BeanInstantiationException Could not instantiate bean class java.net.URI Constructor threw exception Illegal character in fragment at index 1: #{systemEnvironment['DATABASE_URL']}
我是不是漏了什么?
提前致谢!
我认为 SpEL 是在 Spring 3.x+ 中才引入的;如果你想使用它,你将需要更新,幸运的是 Spring 在向后兼容性方面相当出色,所以你可能很幸运,只需要更新依赖项。您也可以尝试简单的 ${DATABASE_URL}
语法,我认为基本的解析器会上升到系统变量来检查值。