我想部署一個java應用程序到Heroku。heroku:java.lang.IllegalStateException:無法處理(64)'@'
它使用環境變量如postgres的:// FOO:[email protected]/hellodb到配置數據庫中的彈簧的applicationContext.xml https://devcenter.heroku.com/articles/spring-mvc-hibernate#modify_database_configuration
我按照文件,CONFIG它,並設置DATABASE_URL使用設置DATABASE_URL = postgres:// postgres:[email protected]/yan(windows)。
但是,當我在本地運行它,我得到了一個錯誤: 創建與ServletContext的資源定義名稱「數據源」豆[/WEB-INF/spring/applicationContext.xml]:豆的初始化失敗;嵌套的異常是o rg.springframework.beans.factory.BeanExpressionException:表達式解析fai led;嵌套的例外是java.lang.IllegalStateException:無法處理(64) '@'
我的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">
<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>`
似乎Spring容器無法處理 '@' 符號,但我真的不知道該如何處理它!我在谷歌搜索,但我有什麼。
有誰知道如何處理它?謝謝!
什麼春天的版本你正在用嗎?任何機會,你可以發佈一個完整的示例應用程序在github或類似的地方,以便於repro? –
謝謝,我自己修復它.. – kaka2008