
PostgreSQLをバージョン8.2から9.2にUPし、Tomcatをバージョン5から7にUPしました。
そのほか、OSはWindows7でローカルシステムを構築中です。
実行すると、HTTPステータス500javax.naming.NamingException: Could not load resource factory class [Root exception is java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSourceFactory]
とエラーが出ます。
以下の環境設定の間違いと思われますが、どこを直せばよいかわかりません。
よろしくご教授ください。
PostgreSQLは、C:\Program Files\postgresql9.2に配置しました。
Tomcatは、C:\Tomcat7に配置しました。
システムはC:\Tomcat7\webapps\test1に配置しました。
JDBCドライバは、postgresql-9.1-901.jdbc3.jar と postgresql-9.1-901.jdbc4.jar を
C:\Tomcat7\libnにコピー&ペーストしました。
接続の定義は、C:\Tomcat7\conf\catalina\localhost に test1.xmlファイルを作りました。
以下がその記述です。
<?xml version='1.0' encoding='utf-8'?>
<Context path="/test1" reloadable="true" docBase="C:\Tomcat7\webapps\test1"
workDir="C:\Tomcat7\work" >
<Resource name="jdbc/RDBMS" auth="container"
type="javax.sql.DataSource" debug="1"
factory="org.apache.commons.dbcp.BasicDataSourceFactory"
driverClassName="org.postgresql.Driver"
username="postgres"
password="postgres"
maxActive="100"
maxIdle="30"
maxWait="10000"
url="jdbc:postgresql://localhost:5432/LocalDB"
removeAbandoned="true"
removeAbandonedTimeout="300"
/>
</Context>
No.1ベストアンサー
- 回答日時:
エラーメッセージを見ると、org.apache.commons.dbcp.BasicDataSourceFactory がロード出来なくてエラーになっているようです。
ドキュメントの設定例に factory 属性は書かれていないようですですので、 factory 属性を取り去って試してみては?
http://tomcat.apache.org/tomcat-7.0-doc/jndi-dat …
もしくは、factory 属性の値を↓にしてみては?
org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory
ご回答ありがとうございます。
factoryの属性を変更しても、同じエラーメッセージが表示されます。
factory属性を削除してTomcatを再起動して実行すると、エラーメッセージが変わりました。
javax.servlet.ServletException: javax.servlet.ServletException
jp.co.nics.kjiact.common.BaseActionServlet.init(BaseActionServlet.java:81)
javax.servlet.GenericServlet.init(GenericServlet.java:160)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)
BaseActionServletの81行目は
public void init() throws ServletException {
try {
System.out.println("====== KJIACT Init Start ======");
super.init();
getWebRootRealPath();
// データベースのデータソースを作成
ConnectionMgr.CreateDS();
// コンスタントの初期化
Constant.init();
// ログオブジェクトの初期化
initLog4j();
// メッセージファイルの初期化
initMsgs();
System.out.println("====== KJIACT Init End =======");
} catch(Exception e) {
System.out.println("====== KJIACT Init ERROR ======");
e.printStackTrace();
throw new ServletException(e); ・・・・・・81行目です
}
}
よろしくお願いします。
No.3
- 回答日時:
> C:\Tomcat7\lib の中に tomcat-dbcp.jar は有りました。
そうですか。その中に↓は含まれているはずなのですが・・・。
org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory
> e.printStackTrace() で出たメッセージがどこに表示(保存?)されるのかわかりません。
おそらくは、↓の様なファイルが有って、そこに出力されているかと。
C:\Tomcat7\logs\catalina.~~~.log
あと、#1で補足して頂いたエラーメッセージ(スタックトレース)は、あれで全部なのですよね?
たびたびご丁寧な回答をいただきましてありがとうございます。
C:\Tomcat7\logs\catalina.yyyymmdd.log と、エラーが出される原因を調べましたところ、
アプリケーションログを取得する定義分のlog4j.xmlファイルがありませんでした。
本ファイルを作り、起動したところ、うまく起動することが出来ました。
最初はJDBCでエラーが出たのですが、コンテキストファイルからFactoryの指定を削除することによって解消しました。
続いて、log4jのファイルがないことでエラーとなったようです。
私のエラーに親身になって取り組んでいただき、ほんとうにありがとうございました。
おかげさまで解決できました。
No.2
- 回答日時:
補足ありがとうございます。
C:\Tomcat7\lib の中に tomcat-dbcp.jar は有りますでしょうか?
> e.printStackTrace();
> throw new ServletException(e); ・・・・・・81行目です
エラーメッセージとソースを明示して頂けるのはありがたいのですが、その一行前の e.printStackTrace() で出たメッセージの方が重要かなと。
(try句のどこかで例外が発生したという事しか分かりませんので)
ご回答いただきましてありがとうございます。
C:\Tomcat7\lib の中に tomcat-dbcp.jar は有りました。
無知で申し訳ありません、e.printStackTrace() で出たメッセージがどこに表示(保存?)されるのかわかりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
自治会総会の成立要件について
-
plgファイルの開き方
-
特定の位置が特定の範囲に含ま...
-
CPRM decrypterのエラーコード...
-
Postgressのデータ一覧へのデー...
-
postgreSQLの日付を変数にする...
-
bashスクリプトでpostgreSQLの...
-
Dynabook T351/46CW のエラーコ...
-
投稿 2018/07/17 14:12編集 201...
-
【Minecraft】GL ERROR
-
エクセルVBAでUWSCを使う
-
Pythonがインスールできない
-
postgresqlのtableのカラムの型...
-
php、postgresqlを使ってwebア...
-
三段論法を真理値表で証明する
-
sqlの中で、 例えば条件句で AN...
-
tesuto 01
-
python3.12のインストール方法
-
Pythonで2つのデータ(キー無し...
-
数値が定期的にあらわれる文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access フォーム「使用可能」...
-
検索で濁点や半濁点をヒットさ...
-
JDBCが見つからないとメッセー...
-
phpPgAdminでログインできません
-
PostgreSQLでポート変更ができない
-
varcharからnumericへの型の変更
-
windows版postgresql 異なるバ...
-
postgresqlの接続ポート5432か...
-
postgresqlでのトランザクショ...
-
Windows10がインストールできま...
-
大至急!mdfファイルの中身を見...
-
MySQLとPostgresの同時使用
-
exp、impについて
-
odbc接続処理が遅い
-
Universalインストーラが勝手に...
-
PostgreSQL14.6のSSL対応について
-
PostgreSQLが起動しない・・・
-
ORA-12571 パケット・ライター障害
-
Windows10でQuickTimeがインス...
-
PostgreSQLを完全に削除出来ない
おすすめ情報