質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.61%

  • Java

    13522questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • AWS(Amazon Web Services)

    1916questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • Spring

    667questions

    Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

  • Tomcat

    552questions

Tomcat7 デプロイ後にStratするとエラーになります。

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 940
退会済みユーザー

退会済みユーザー

前提・実現したいこと

AWS・Javaの初心者です。用語等に至らない点があるかと思います。恐れ入ります。

現在、AWSで稼働中のJava Webアプリケーションがあり、
学習のために、AWSの別環境で再構築しております。

1.ソースファイル等、何も変更せずに、eclipseでwarファイルを作成しました。
2.AWSにEC2(Linux)LinuxとRDS(MySQL 5.6.34)のインスタンスを作成しました。
(EC2とRDSのパラメータは、本番と同様に設定しております)

3.EC2で、以下の3つをyum -y installしました。
java-1.7.0-openjdk-devel
tomcat7 tomcat7-admin-webapps
mysql-connector-java

4./usr/share/java/mysql-connector-java.jarを/usr/share/tomcat7/lib/にコピーしました。
5.Tomcatのmanagerページにログインし、1.のwarファイルをデプロイしました。(結果はOKと表示されました)
6.デプロイしたアプリを「Start」したところで、下記エラーが発生して詰まっております。

確認すべき点は多々あるかと思いますが、まずはここを確認せよ、という点を教えていただきたく、お願いいたします。

発生している問題・エラーメッセージ

FAIL - Application at context path /Fuapp could not be started

/usr/share/tomcat7/logs/catalina.out で表示されたエラー内容(まずは1つ目のみ抜粋)

WARNING: Exception encountered during context initialization - cancelling refresh attempt
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.mybatis.spring.mapper.MapperScannerConfigurer#0' defined in class path resource [applicationContext.xml]: Cannot resolve reference to bean 'sqlSessionFactory' while setting bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [applicationContext.xml]: Cannot resolve reference to bean 'dataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is javax.naming.NamingException: Could not create resource factory instance [Root exception is java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory]


翻訳サイトで翻訳してみましたが、原因究明に至りませんでした。技術力がなく申し訳ありません。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

/usr/share/tomcat7/logs/catalina.out
にデプロイした時刻のときのエラー内容(例外)が出力されているのでは?
その内容がわかった場合は、質問のところに、転記してください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/09/29 11:22

    kuniku 様
    ご指導ありがとうございます。catalina.outの内容を転記いたしました。よろしくお願いいたします。

    キャンセル

  • 2017/09/29 13:57

    <pre>
    WARNING: Exception encountered during context initialization - cancelling refresh attempt

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.mybatis.spring.mapper.MapperScannerConfigurer#0' defined in class path resource [applicationContext.xml]:
    Cannot resolve reference to bean 'sqlSessionFactory' while setting bean property 'sqlSessionFactory';

    nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource
    [applicationContext.xml]:

    Cannot resolve reference to bean 'dataSource' while setting bean property 'dataSource';

    nested exception is org.springframework.beans.factory.BeanCreationException:
    Error creating bean with name 'dataSource' defined in class path resource [applicationContext.xml]:
    Invocation of init method failed; nested exception is javax.naming.NamingException:
    Could not create resource factory instance [Root exception is java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory]

    </pre>


    ・上記例外(一部改行など、分けています)の内容からフレームワークで、Spring 、MyBatis を使ってるのであれば、質問のタグに、Spring を追加してください。

    ・tomcat起動 →war読み込む → warの中のライブラリSpringで、SpringのDIコンテナが初期化しようとする→何らか不備のため例外が発生 といった状況ですね。


    次に、例外の内容から不備を探していくことになります。

    ``java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory``

    が出ており、これは
    tomcatがもつ機能(Springではなく)で、DBとアプリケーションの接続を行うライブラリのクラスが無いよ

    と示しているので、tomcatのlibに不足はないか?もしくは、warの中のWEB-INF/lib に不足はないか?(eclipseで開発している環境と比較)

    キャンセル

  • 2017/10/02 11:10

    kuniku 様

    ご回答ありがとうございます。
    tomcatのlib及びwarの中のWEB-INF/libについて、稼働環境と構築中環境を比較いたしました。
    【libの差異】以下の2つが構築中環境に存在しませんでした。
    ①mysql-connector-java-5.0.8-bin.jar 
    ②tomcat-dbcp.jar

    【libの対応】
    ①mysql-connector-javaをyum installしました。mysql-connector-java-5.1.12.jarがインストールされました。
    ②稼働環境のファイルをコピーして配置しました。

    【WEB-INF/libの差異】不足しているファイルはありませんでした。ただし、稼働環境は、所有者・グループがrootであるのに対し、構築中環境はtomcatになっております。

    上記①②を実行し、Tomcatを停止・開始してみましたが、状況は変わらず、catalina.outの内容も変わりませんでした。

    お時間がありましたら、引き続きご指導お願いいたします。

    キャンセル

  • 2017/10/02 13:30

    tomcat-dbcp.jar が存在しない時点で、tomcatのインストールが上手くできてなさそうな気がしますが
    tomcatの管理用画面adminからwarをデプロイしているので、画面表示できているので、ある程度は問題なさそうな気もします。

    jarファイルを追加しても動かない場合は、パーミッションの問題の可能性があります。
    tomcatを実行しているユーザ(tomcatユーザ?)で、/usr/share/tomcat7/* が見られるか、cd や ls でファイルが見られるか。

    キャンセル

  • 2017/10/02 15:56

    kuniku 様
    ご回答、ありがとうございます。
    ご指摘のとおり、構築中環境のmysql-connector-javaとtomcat-dbcp.jarのパーミッションを確認いたしました。
    以下の2点について、稼働環境と差異がありましたので、構築中環境の設定を変更いたしました。
    ①グループ・所有者を変更
    ②グループの書き込み権限を追加

    Tomcatを再起動し、manager画面を確認したところ、無事、Startしていました。
    念のため、catalina.outも確認しましたが、エラーは発生していませんでした。

    大変お世話になりました。ありがとうございました。

    キャンセル

0

スタックトレースから見るに、

Springの設定:applicationContext.xmlに書かれているsqlSessionFactoryが同ファイルに書かれているdataSourceを参照し、dataSourceの設定からTomcatのDBCPを利用する設定を書いているのだと思いますが、

tomcatのlibの中にデフォルトで存在する tomcat-dbcp.jar が参照できない状態になっているかと予想されます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/10/02 11:13

    A-pZ 様

    ご回答ありがとうございます。
    ご指摘のとおり、構築中環境にはtomcat-dbcp.jar が存在していませんでした。
    kuniku様への返信に詳細を記載させていただきましたが、稼働環境からコピーして配置しても状況が変わりませんでした。
    お時間がありましたら、引き続きご指導お願いいたします。

    キャンセル

  • 2017/10/02 15:57

    A-pZ 様
    皆さまのおかげで無事解決に至りました。
    ご回答、ありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Java

    13522questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • AWS(Amazon Web Services)

    1916questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • Spring

    667questions

    Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

  • Tomcat

    552questions