heroku:java.lang.IllegalStateException:无法处理(64)'@'

时间:2012-06-23 04:13:40

标签: heroku

我正在尝试将一个Java应用程序部署到Heroku。

它使用环境变量如postgres:// foo:foo@heroku.com/hellodb来配置spring applicationcontext.xml中的数据库https://devcenter.heroku.com/articles/spring-mvc-hibernate#modify_database_configuration

我按照文档,配置它,并设置DATABASE_URL使用设置DATABASE_URL = postgres:// postgres:huang@heroku.com/yan (windows)。

但是当我在本地运行它时,我得到一个错误:  在ServletContext资源[/WEB-INF/spring/applicationContext.xml]中创建名为'dataSource'的bean:bean的初始化失败;嵌套异常是o rg.springframework.beans.factory.BeanExpressionException:表达式解析fai LED;嵌套异常是java.lang.IllegalStateException:无法处理(64)'@'

我的春天xml是这样的:

    `<bean class="java.net.URI" id="dbUrl">
    <constructor-arg value="#{systemEnvironment['DATABASE_URL']}" />
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="url"
        value="#{ 'jdbc:postgresql://' + @dbUrl.getHost() + @dbUrl.getPath() }" />
    <property name="username" value="#{ @dbUrl.getUserInfo().split(':')[0] }" />
    <property name="password" value="#{ @dbUrl.getUserInfo().split(':')[1] }" />
</bean>`
似乎弹簧容器无法处理'@'符号,但我真的不知道如何处理它!我在谷歌搜索,但我得到了任何东西。

有谁知道如何处理它?谢谢!

1 个答案:

答案 0 :(得分:0)

是的,我修好了!!!

官方文档有错误!!!

我只删除“@”符号,它可以正常工作

这个春天的xml是这样的:

<bean class="java.net.URI" id="dbUrl">
    <constructor-arg value="#{systemEnvironment['DATABASE_URL']}" />
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
   <property name="url"
       value="#{ 'jdbc:postgresql://' + dbUrl.getHost() + dbUrl.getPath() }" />
   <property name="username" value="#{ dbUrl.getUserInfo().split(':')[0] }" />
   <property name="password" value="#{ dbUrl.getUserInfo().split(':')[1] }" />
</bean>

我会写一封信来报告此错误