Java アプリを Heroku にデプロイしようとしています。
postgres://foo:foo@heroku.com/hellodb などの環境変数を使用して、Spring applicationcontext.xml でデータベースを構成しますhttps://devcenter.heroku.com/articles/spring-mvc-hibernate#modify_database_configuration
ドキュメントに従って設定し、DATABASE_URL use set DATABASE_URL=postgres://postgres:huang@heroku.com/yan (windows) を設定します。
しかし、ローカルで実行すると、エラーが発生しました: ServletContext リソース [/WEB-INF/spring/applicationContext.xml] で定義された名前 'dataSource' を持つビーンを作成しています: ビーンの初期化に失敗しました。ネストされた例外は o rg.springframework.beans.factory.BeanExpressionException: 式の解析に失敗しました。ネストされた例外は 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>`
スプリング コンテナは '@' 記号を処理できないようですが、対処方法がわかりません! 私はグーグルで検索しましたが、何かを得ました。
対処方法を知っている人はいますか?ありがとう!