WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:ServletからMySQLへアクセス

0:[投稿] (--)? [2002/10/30 14:45 ][環境:WIN+IE WIN系+Java]

お世話になります。
皆様のお力を御貸し下さい。m(__)m

ServeletからMySQLへアクセスが出来ません。
アクセスが出来ないと言うか、DataSourceオブジェクトが取得
出来ないみたいです。

【環境】
 OS     :Win2000
 Webサーバー:Tomcat4.0
 Java    :J2SDK1.4.0
 DB     :MySQL2.0.14
 
【ソース】
 <<Servlet>>
  import java.io.*;
  import javax.servlet.*;
  import javax.servlet.http.*;
  import java.sql.* ;
  import javax.naming.* ;

  public class BenkyoServlet extends HttpServlet{
     public void doGet(HttpServletRequest request,
                 HttpServletResponse response)  {
          try{
            Context ctx = new InitialContext();
            javax.sql.DataSource ds =  (javax.sql.DataSource)ctx.lookup("java:comp/env/jdbc/MySQL");
            Connection conn = ds.getConnection();

            String strSQL = "select * from hello_world_table " ;
                Statement  stmt = conn.createStatement();

                ResultSet  rs   = stmt.executeQuery(strSQL);

                String  strWork = rs.getString(1);

               rs.close();
               stmt.close();

            conn.close();
   
                 response.setContentType("text/plain; charset=shift_jis") ;
                 PrintWriter out = response.getWriter() ;
            out.println(strWork) ;
            out.close() ;
           }   catch(Exception ex){
               ex.printStackTrace();
           }
       }
    }

  <<server.xml>>
       <Context path="/benkyo" docBase="D:\Home\Work\tomcat\benkyo" debug="0"
                reloadable="true" crossContext="true">
         <Resource name="jdbc/MySQL" auth="SERVLET"
                   type="javax.sql.DataSource"/>
         <ResourceParams name="jdbc/MySQL">
           <parameter>
             <name>driverClassName</name>
             <value>org.gjt.mm.mysql.Driver</value>
           </parameter>
           <parameter>
             <name>driverName</name>
             <value>jdbc:mysql://localhost:8080/hellodb</value>
           </parameter>
         </ResourceParams>
       </Context>

  <<web.xml>>
   <web-app>
      <servlet>
           <servlet-name>BenkyoServlet</servlet-name>
           <servlet-class>BenkyoServlet</servlet-class>
      </servlet>
      <servlet-mapping>
           <servlet-name>BenkyoServlet</servlet-name>
           <url-pattern>/BenkyoServlet</url-pattern>
      </servlet-mapping>
      <resource-ref>
         <res-ref-name>jdbc/MySQL</res-ref-name>
         <res-type>javax.sql.DataSource</res-type>
         <res-auth>Container</res-auth>
      </resource-ref>
   </web-app>

【エラー内容】
 サーブレット起動時のエラー内容は、以下の通りです。
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ TyrexDataSourceFactory:  Cannot create DataSource, Exception
java.lang.NoClassDefFoundError: tyrex/jdbc/xa/EnabledDataSource
    at org.apache.naming.factory.TyrexDataSourceFactory.
        getObjectInstance(TyrexDataSourceFactory.java:166)
   at org.apache.naming.factory.ResourceFactory.
        getObjectInstance(ResourceFactory.java:164)
   at javax.naming.spi.NamingManager.
        getObjectInstance(NamingManager.java:301)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:834)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:194)
    at org.apache.naming.SelectorContext.lookup(SelectorContext.java:183)
    at javax.naming.InitialContext.lookup(InitialContext.java:347)
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++

以上、宜しくお願い致します。


1:[回答] にゃあ! [MAIL] [2002/10/30 15:04 ]

データベースの接続は普通こうすると思うのですが。。。
こっちのやり方ではまずいのでしょうか?

http://www.geocities.co.jp/Hollywood-Miyuki/7551/java/servlet2.html


2:[回答] (--)? [2002/10/30 16:09 ]

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

「Tomcatのリソースから取得する方法でお願いします。」
と言われてしまったので、頑張っている今日この頃です。

ちなみに、私は以下のページを参考にさせて頂きましたが
まだ、接続出来ません。

【Sample】
 http://kamakura.cool.ne.jp/oppama/ssja/jndidatasource.html
 http://java-house.jp/ml/archive/j-h-b/048817.html


3:[回答] B-Cus [2002/10/30 18:24 ]

ここらへんはチェック済?http://www.google.com/search?hl=ja&ie=Shift_JIS&q=java.lang.NoClassDefFoundError+tyrex%2Fjdbc%2Fxa%2FEnabledDataSource&btnG=Google+%8C%9F%8D%F5&lr=lang_ja


4:[回答] (--)? [2002/10/31 15:58 ]

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

大変、参考になりそうです。
英語は苦手ですが、頑張ってみます。

結果については、暫くかかりそうですね。
それでは、また

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World