Spring boot + Doma2 + PostgreSQL + tomcatでWEBアプリ開発を行っております。
<使用ミドルウェア>
spring boot:1.3.2
Doma2:2.6.2
<実行APサーバ>
OS:redhat enterprise linux 6
jdk:1.8.0.74
JDBCDriver:postgresql-9.4.1208.jar
tomcat:8.0.32
<開発マシン>
jdk:1.8.0.74
マシン:Windows7
IDE:eclipse4.4
ビルドツール:Gradle
tomcat:8.0.32
<DBサーバ>
DB:Windows Server2012R2
PostgreSQL:9.4
上記開発マシンにおいて、gradleタスクでwarファイルを作成し、
開発マシン上のTomcatにデプロイして動作確認を行ったところ、
問題なく動作しました。
ところが、これを実行APサーバ上のTomcatにデプロイしたところ、
下記のエラーが発生しております。
16-03-04 14:57:55 INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml] 16-03-04 14:57:55 INFO org.springframework.jdbc.support.SQLErrorCodesFactory - SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase, Hana] 16-03-04 14:57:55 WARN org.springframework.jdbc.support.SQLErrorCodesFactory - Error while extracting database product name - falling back to empty error codes org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is org.postgresql.util.PSQLException: 接続試行は失敗しました。 at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:305) ~[spring-jdbc-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:329) ~[spring-jdbc-4.2.4.RELEASE.jar:4.2.4.RELEASE] (中略) Caused by: org.postgresql.util.PSQLException: 接続試行は失敗しました。 at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:257) ~[postgresql-9.4-1206-jdbc41.jar:9.4] (中略) Caused by: java.io.IOException: UTF-8シーケンス違反: 初期バイトは、10xxxxxx: 131 at org.postgresql.core.UTF8Encoding.decode(UTF8Encoding.java:98) ~[postgresql-9.4-1206-jdbc41.jar:9.4] (中略)
実行APサーバから実行DBサーバーへのping、5432ポートへのtelnet接続はできていますので、
ネットワークの問題ではないように思われます。
propertieファイルの文字コードや改行コード(LFに統一)なども改善してみたのですが、
エラーの解決には至らず……。
上記のようなエラーに何か心当たりなどあるかたがおられましたら、
ご教授いただきたく思います。
2016/03/04 16:05追記
改めてPostgreSQLのログを確認してみたところ、
"ロールXXXXがありません"というエラーが発生しておりました。
そのユーザはlinuxのtomcatの実行ユーザと同じでした。
JDBC接続の際にはユーザもすべてJavaソース内で指定しているため、
関係ないだろうと踏んでおり見落としていました。
上記ユーザを追加したところ接続そのものは成功しました。
linuxで作成する場合にはユーザを合わせる必要があるのでしょうか……?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/04 10:05 編集