gpt4 book ai didi

java - 索引 1 处的片段中存在非法字符 : #{systemEnvironment ['DATABASE_URL' ]} configurando datasource on Heroku

转载 作者:行者123 更新时间:2023-12-02 11:33:55 25 4
gpt4 key购买 nike

我正在按照 Heroku 的指南通过 spring xml 配置我的数据源。

这是指南: https://devcenter.heroku.com/articles/connecting-to-relational-databases-on-heroku-with-java#using-the-database_url-in-spring-with-xml-configuration

这是我的配置:

<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} 语法,我认为基本解析器会进入系统变量来检查值。

关于java - 索引 1 处的片段中存在非法字符 : #{systemEnvironment ['DATABASE_URL' ]} configurando datasource on Heroku,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49089080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com