0

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].
4

3 に答える 3

0

JNDI を使用して Tomcat 6 を構成しましたが、正確な構成設定を覚えていませんが、JNDI を使用する必要があることは確かです。

于 2013-03-25T07:09:10.207 に答える
0
1. Context configuration

Configure the JNDI DataSource in Tomcat by adding a declaration for your
resource to your Context.

Open the context.xml which is located at the Tomcat configuration (conf) folder.

For Example: (This path might be differ for your tomcat instance)

D:\Program Files\Apache Software Foundation\Tomcat 5.5\conf

Add the following Resource entry with your database properties.

</Context>

--------------------------------------------

---------------------------------------------

<Resource name="jdbc/Foofys" auth="Container" type="javax.sql.DataSource"

maxActive="100" maxIdle="30" maxWait="10000"

username="root" password="pradeep" driverClassName="com.mysql.jdbc.Driver"

url="jdbc:mysql://localhost:3306/foofys"/>

</Context>

Bolded attributes should be as per your database configurations.

2. web.xml configuration

Open the context.xml which is located at the Tomcat configuration (conf) folder.

For Example: (This path might be differ for your tomcat instance)

D:\Program Files\Apache Software Foundation\Tomcat 5.5\conf

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/
j2ee/web-app_2_4.xsd"

version="2.4">

<resource-ref>

<description>DB Connection</description>

<res-ref-name>jdbc/Foofys</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>

-----------------------------------------------

-------------------------------------------------

</web-app>

3. Copy the My SQL database driver into the tomcat common
libraries folder.

For Example: (This path might be differ for your tomcat instance)

D:\Program Files\Apache Software Foundation\Tomcat5.5\common\lib

mysql-connector-java-5.1.10.jar
于 2013-03-25T12:50:03.530 に答える
0

プロジェクトで同様の問題に直面しました。jdbc mysql コネクタを apache tomcat の lib フォルダに配置するのを忘れていました。Mysql JDBC コネクタ

後でファイルを lib フォルダーに追加し、例外を取り除きました。

于 2013-09-20T06:27:30.553 に答える