
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で質問しましょう!
似たような質問が見つかりました
- サーバー 別サーバに構築したApache+Tomcatの連携について 2 2023/03/06 23:23
- PHP eclipse pleiades phpのインストールについて 1 2023/02/03 17:15
- PostgreSQL PostgreSQLドライバの登録。 MavenプロジェクトからPostgreSQLへ接続をするため 1 2022/09/26 12:30
- Java Javaで個人ブログサイトを作りたい 7 2022/04/03 17:37
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- PostgreSQL SQLでUPSERTを一度に複数行やる方法 3 2022/03/25 15:17
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- HTML・CSS 疑似要素で背景画像に指定したSVG画像の色変更 2 2023/01/30 22:45
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
postgresql.conf を編集したら,...
-
Postgre7.3.4に対応するpgAdmin
-
FedoraCore3でPostgreSQLを
-
Access フォーム「使用可能」...
-
pgsql.ini のファイルは何所に...
-
JDBCのバグ?それともプログラ...
-
PHPとPostgreSQLとの連携
-
LINEのデータtalk.sqliteの閲覧...
-
Windows2000ServerにPostgreSQL...
-
PostgresSQL のodbcドライバー...
-
postgreSQLのODBCはどこに・・・
-
connect情報を取得するには
-
デフォルトポート以外の指定の...
-
postgresql-8.0.3をインストー...
-
Common SQL Environment で接続...
-
ロゴのライセンス
-
MySQLのポートの閉じ方
-
createuser
-
roleとuserの違いがわからない...
-
バッチによるコマンドラインか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access フォーム「使用可能」...
-
検索で濁点や半濁点をヒットさ...
-
JDBCが見つからないとメッセー...
-
phpPgAdminでログインできません
-
Postgre7.3.4に対応するpgAdmin
-
postgresql.conf を編集したら,...
-
FedoraCore3でPostgreSQLを
-
varcharからnumericへの型の変更
-
configアイル一式とは?
-
起動時に
-
postgresqlの接続ポート5432か...
-
postgresqlでのトランザクショ...
-
windows版postgresql 異なるバ...
-
PostgreSQLで集約関数をネスト...
-
Windows10でQuickTimeがインス...
-
odbc接続処理が遅い
-
MySQLとPostgresの同時使用
-
PostgreSQLをC言語でアクセスし...
-
ORA-12571 パケット・ライター障害
-
PostgreSQLの標準文字コードをS...
おすすめ情報