アプリ版:「スタンプのみでお礼する」機能のリリースについて

tomcatを起動すると以下のようなエラーがでてしまい、どこを修正すればよいかわからず困っています。どなたかわかる方がいらっしゃれば教えていただきたいです。
javaの勉強をしている初心者です。

[コンソールに出力されるエラー内容]
致命的: キー UserDatabase でユーザデータベースを検索中の例外です
javax.naming.NameNotFoundException: 名前 UserDatabase はこのコンテキストにバインドされていません


補足:jdbcドライバーを利用してデータベースと接続をしようとしているところです。

開発環境:windows7、eclipse3.7、tomcat7.0、servlet3.0、mysql5.5

A 回答 (2件)

xml内のnameをUserDatabaseにするか、アプリ内での指定をjdbc/localDBにしてはどうでしょうか?


データソースを設定した名前と、それを取得する際に指定する名前が違っているからエラーが出ているのでは?
    • good
    • 0
この回答へのお礼

遅れてすいません。ご回答ありがとうございます。
参考にさせていただきます。

お礼日時:2012/07/02 15:09

この情報のみでは情報不足の為何とも言えないですが、


起動時にjavax.naming.NameNotFoundExceptionがでてありがちなものは

1 jdbcドライバの格納位置が間違っている
2 server.xmlの記述が間違っている

のどちらかではないでしょうか?

記憶が曖昧ですが、確かjdbcドライバをCATALINA_HOME下のライブラリフォルダに
格納してみてはいかがでしょうか?

こちらでエラーが発生した場合はもう少し
詳細な情報を出したほうが解答がしやすいと思われます…。

この回答への補足

参考
※JNDIを利用
1.server.xmlで追加した箇所
<GlobalNamingResources>

<Resource driverClassName="com.mysql.jdbc.Driver" initialSize="5" maxActive="5"
maxIdle="5" maxWait="5000" name="jdbc/localDB" password="hoge"
type="javax.sql.DataSource" url="jdbc:mysql://127.0.0.1:3306/sample" username="root"/>

</GlobalNamingResources>

2.contextで追加した箇所
<ResourceLink name="jdbc/localDB" global="jdbc/localDB" type="javax.sql.DataSource" />

3.web.xmlで追加した箇所
<resource-ref>
<res-ref-name>jdbc/localDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

補足日時:2012/06/14 10:47
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

ちなみにご指摘いただいたJDBCの格納場所とserver.xmlの記述内容は本の通りにしているのですが。。。

詳細な情報は何を出せばよろしいのでしょうか?

お礼日時:2012/06/14 10:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています