AWS Linux マイクロ インスタンスに Tomcat 7 と MySQL 5.5 をインストールしました。MySQL と通信するように Tomcat 7 を構成する方法を見つけようとしていますが、うまくいきませんでした。私はずっと Glassfish のユーザーだったので、GUI を使用するのは非常に簡単でしたが、Tomcat ではこれを構成する方法がわかりません。
私は Tomcat 7 の Apache ドキュメントを見てきましたが、さらに混乱していることに気づきました。編集する必要のあるファイルがどこにあるのかわからず、何を編集すればよいのかもわかりません。MySQL ドライバーをインストールする必要がありますか? JDBC と JNDI のどちらを使用しますか? 私のアプリは Hibernate を使用する Tapestry5 アプリなので、それが問題かどうかはわかりません。
誰かが素敵なガイドを知っているか、これを行う方法のサンプルコードを提供してくれますか? 念のために言っておきますが、私は Linux のハンドルを握っているのは数時間しかないので、Linux に関連することに関しては非常に環境に配慮しています。
アップデート
次のデフォルト構成を見つけました
<!-- <Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
-->
私は休止状態を使用しており、hibernate.cfg.xml で次を使用しています
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.datasource">jdbc/mydatabase</property>
上記のリソースをコメントアウトして以下を追加しましたが、これもうまくいかないようです。また、Tomcat マネージャーにもアクセスできなくなっていることに気付きました。
<Resource type="javax.sql.DataSource"
name="jdbc/mydatabase"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/mysql"
username="root"
password="password"
/>
context.xml ファイルに以下を追加しました
<ResourceLink type="javax.sql.DataSource"
name="jdbc/mydatabase"
global="jdbc/mydatabase"
この構成で私が間違っていることを誰かが知っていますか?
次の例外が発生します
根本的な原因
HTTP Status 500 - java.lang.RuntimeException: Exception constructing service 'ValueEncoderSource': Error invoking service
コントリビューション メソッド org.apache.tapestry5.hibernate.HibernateModule.contributeValueEncoderSource(MappedConfiguration, boolean, HibernateSessionSource, Session, TypeCoercer, PropertyAccess, LoggerSource): サービス 'HibernateSessionSource' の構築中に例外が発生しました: コンストラクタ public org.apache.tapestry5.internal.hibernate の呼び出し中にエラーが発生しました。 HibernateSessionSourceImpl (org.slf4j.Logger,java.util.List): データソースが見つかりませんでした
javax.naming.NameNotFoundException: Name [jdbc/mydatabase] is not bound in this Context. Unable to find [jdbc].