• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javaのMySQL(DataSource))

【解決方法教えてください】javaのMySQL(DataSource)で会員登録をする際に発生するNullPointerExceptionの解決方法

このQ&Aのポイント
  • javaのMySQL(DataSource)を使用して会員登録をする際に、NullPointerExceptionエラーが発生して先に進めない状況になりました。エラーの原因はdataSource.getConnection()の箇所で、NullPointerExceptionがスローされていることが分かります。
  • 解決のためには、以下のような修正が必要です。
  • 1. server.xmlで正しいDataSourceの設定を行う 2. web.xmlでResourceRefの設定を行う 3. conn=dataSource.getConnection()の前にDataSourceの初期化を行う

質問者が選んだベストアンサー

  • ベストアンサー
noname#128134
noname#128134
回答No.5

もう動いたんかな?もしあれだったらお試しを。 struts (ver1) みたいですね。contextx.xml を/META-INF において、そこにResource タグを書く事もできますよ。 <Context debug="5" reloadable="true" distributable="true"> <Resource name="MySQL_Tools" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="user_tools" password="pass_tools" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://nearest_myserver:3306/tools_db?autoReconnect=true&amp; useUnicode=true&amp;characterEncoding=utf8" /> </Context> なにかと問題の多いDataSource、struts2 では非推奨になりました。

ari_dasu_ari
質問者

お礼

ありがとうございました。色々なサイトを見て参考にしてなんとか解決できました。参考になりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.4

ari_dasu_ariの実行環境がこちらには全然わからないので難しいですね・・ <Context>の記述がなくてもアクセスできるものなんですっけ。 うーん・・ では、eclipseのパッケージエクスプローラなどにServersといったものがありませんか? その中にcontext.xmlがありませんか? そのファイルの<Context>タグ内に<Resource>を追加してみてください。 先の回答で示したキーワードで検索はしてみましたか? 参考になるページは一切ありませんでしたか?

ari_dasu_ari
質問者

お礼

一応英語のサイトと検索はしてみました。しかしいいサイトが無かったです。

全文を見る
すると、全ての回答が全文表示されます。
  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.3

補足ありがとうございます。 >サーバーはMySQLでパージョンは5.1です。 すみません。サーバーといったのはアプリケーションサーバーの事でした(この表現も正しいか微妙ですが) 参考にしていたページから推測すると、Tomcatでしょうか。 バージョンによって設定ファイルの書き方が違ったりしますので、それが原因かもしれません。 もしTomcat6.*をご使用でしたら、 server.xmlに記述した<ResourceParams>タグの内容を全て<Resource>タグの中に書くようにしてみてください。 具体的に言うと <Resource name="MySQL_JDBC" auth="Container" type="javax.sql.DataSource" username="XXXX" password="XXXX" 以下必要な分だけ /> という感じです。 <ResourceParams>タグは全て消してしまって構いません。 <Resource>タグを<DefaultContext>ではなく、該当webアプリの<Context>タグの中に入れてください。 eclipseを使用しているなら、勝手に<Context>タグが作られているのではないかと思います。 Tomcatの公式リファレンスです。英語ですが、こちらを参考にしてみてください。 http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html#MySQL_DBCP_Example あとは「tomcat6 データソース 設定」や「tomcat6 jdbc 設定」などで検索してみてると参考になるページがあると思います。

ari_dasu_ari
質問者

お礼

あ・・度々すいません。補足書いたあとに気づいたのですが、<Resource>タグを<DefaultContext>ではなく、該当webアプリの<Context>タグの中に入れてください。 eclipseを使用しているなら、勝手に<Context>タグが作られているのではないかと思います。というのはどういう意味でしょうか?server.xmlにはDefaultContextがあるのは分かるんですが、Contextタグは自作しないといけないのでしょうか?何度も質問してすいません><

ari_dasu_ari
質問者

補足

回答ありがとうございます。参考になりました。

全文を見る
すると、全ての回答が全文表示されます。
  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.2

単純にdataSourceがnullなのではないでしょうか。 >dataSource=(DataSource)context.lookup("java:comp/env/MySQL_JDBC"); これがうまくいっていないのだと思います。 使用しているサーバーとバージョンはなんでしょうか? server.xmlとweb.xmlの全てを記載することはできますか?

ari_dasu_ari
質問者

お礼

ここに書くべきじゃないけど書いちゃいます。 <web-app> <context-param> <param-name>jdbcDriver</param-name> <param-value>com.mysql.jdbc.Driver</param-value> </context-param> <context-param> <param-name>jdbcUri</param-name> <param-value>jdbc:mysql://localhost:3306/airticket?useUnicode=true&amp; characterEncoding=sjis </param-value> </context-param> <context-param> <param-name>dbUser</param-name> <param-value>root</param-value> </context-param> <context-param> <param-name>dbPassword</param-name> <param-value>mysql</param-value> </context-param> <filter> <filter-name>EncodeFilter</filter-name> <filter-class>memregister.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>EncodeFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>2</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>2</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <resource-ref> <res-ref-name>MySQL_JDBC</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> これです。

ari_dasu_ari
質問者

補足

回答ありがとうございます。 サーバーはMySQLでパージョンは5.1です。 server.xmlは、 <?xml version="1.0" encoding="UTF-8"?> <Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <!-- 1.DefaultContextタグの追加 --> <DefaultContext> <Resource name="MySQL_JDBC" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="MySQL_JDBC"> <parameter> <name>factory</name> <value> org.apache.commons.dbcp.BasicDataSourceFactory </value> </parameter> <parameter> <name>maxActive</name> <value>20</value> </parameter> <parameter> <name>maxIdle</name> <value>30000</value> </parameter> <parameter> <name>maxWait</name> <value>100</value> </parameter> <parameter> <name>username</name> <value>root</value> </parameter> <parameter> <name>password</name> <value>mysql</value> </parameter> <parameter> <name>driverClassName</name> <value>com.mysql.jdbc.Driver</value> </parameter> <parameter> <name>url</name> <value>jdbc:mysql://airticket?useUnicode=true</value> </parameter> </ResourceParams> </DefaultContext> </Host> web.xmlは長くて全部は入らなかったので、次に掲載します。すいません

全文を見る
すると、全ての回答が全文表示されます。
noname#128134
noname#128134
回答No.1

close() してないから限度に達したのかな?

ari_dasu_ari
質問者

補足

回答ありがとうございます。一応close()してみたけど、やっぱり同じエラーが出ちゃいました><

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • JNDIでDataDourceにNullが入ってしまう

    いつもお世話になっています。 JNDIを使ってDataSourceを取得しようと思っているのですがNullが返ってきてしまってかなりハマッてます。 ご指導頂けたらと思います。 設定は下記のようになっています。 環境: jdk:1.4.2_12 tomcat:5.0 Mysql:4.0.20a-nt server.xml-------------------------------------------------- <Context docBase="C:\Documents and Settings\ESC\workspace\SNS\.deployables\SNS" path="/SNS" reloadable="true"> <Resource name="jdbc/MySQL" auth="Container" type="javax.sql.Datasource" /> <ResourceParams name="jdbc/MySQL"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <!-- Max Active <parameter> <name>maxActive</name> <value>100</value> </parameter> --> <!-- Max Idle <parameter> <name>maxIdle</name> <value>30</value> </parameter> --> <!-- Max Wait <parameter> <name>maxWait</name> <value>10000</value> </parameter> --> <parameter> <name>username</name> <value>****</value> </parameter> <parameter> <name>password</name> <value>****</value> </parameter> <parameter> <name>driverClassName</name> <value>com.mysql.jdbc.Driver</value> </parameter> <parameter> <name>url</name> <value>jdbc:mysql://localhost/dbname?useUnicode=true&amp;characterEncording=Windows-31J</value> </parameter> </ResourceParams> </Context> web.xml-------------------------------------------------- <resource-ref> <res-ref-name>jdbc/MySQL</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> java側-------------------------------------------------- InitialContext ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/MySQL"); connection = ds.getConnection(); -------------------------------------------------------- どうか宜しくお願い致します。

  • TomcatのJDBC連携について

    TomcatのJDBC連携について javax.servlet.ServletException: Cannot create JDBC driver of class '' for connect URL 'null' というエラーが消えず、知恵をお貸しください。 他にも同様のケースについて調べては見たのですが解決しません。 ■環境 Windows XP SP3 Eclipse3.6(Pleiades All in One 3.6.0.20100623) apache-tomcat-5.5.29 mysql-essential-5.1.48 ■設定 ■server.xml に下記を追加 <Context docBase="Test" path="/test" reloadable="true" source="org.eclipse.jst.j2ee.server:Test"> </Context> ■Tomcat 5.5/conf/Catalina/localhost/Test.xml に下記を記載 <Context docBase="${catalina.home}/server/webapps/test" privileged="true" antiResourceLocking="false" antiJARLocking="false"> <Resource name="jdbc/MySQL_JDBC" auth="Container" type="javax.sql.DataSource" factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=sjis" username="**" password="**" maxActive="20" maxIdle="30" maxWait="1800"/> </Context> ■Webアプリケーション配下の web.xmlに下記を追加 <resource-ref> <res-ref-name>jdbc/MySQL_JDBC</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> ■JSPソースに下記を記載 jdbc.jsp <% InitialContext initCon = new InitialContext(); DataSource ds = (DataSource) initCon.lookup("java:comp/env/jdbc/MySQL_JDBC"); Connection con = ds.getConnection(); Statement stmt = con.createStatement(); ResultSet result = stmt.executeQuery("select * from mytable;"); while (result.next()) { 表示処理 } con.close(); initCon.close(); %> 別途作成した下記JSPではデータ取得はできています。 <% Class.forName("com.mysql.jdbc.Driver"); Connection conn=DriverManager.getConnection("jdbc:mysql://localhost/test?" + "user=tester&password=tester&useUnicode=true&characterEncoding=Shift_JIS"); Statement st=conn.createStatement(); ResultSet res = st.executeQuery("select * from mytable");

    • ベストアンサー
    • Java
  • eclipseでのJDBCについて

    eclipseのMySQLJDBCの外部接続に関して全く分からず手詰まりしているので、ご教授願いたいと思います。 プロジェクトの配下のweb.xmlにMySQLの接続情報を入力しました。一応ソースです。 web.xmlに <context-param> <param-name>jdbcDriver</param-name> <param-value>com.mysql.jdbc.Driver</param-value> <description>JDBC Driver</description> </context-param> <context-param> <param-name>jdbcUri</param-name> <param-value>jdbc:mysql://localhost:3306/airticket?useUnicode=true&amp; characterEncoding=sjis</param-value> <description>MySQL URI</description> </context-param> <resource-ref> <res-ref-name>jdbc/MySQL_JDBC</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> を書いて、 会員登録をするクラスに、 try{ try{ //ドライバクラスをロード Class.forName("com.mysql.jdbc.Driver").newInstance(); } catch(Exception ex) { } //データベースへ接続 String url = "jdbc:mysql:///airticket?useUnicode=true&characterEncoding=SJIS"; Connection con = DriverManager.getConnection(url); //ステートメントオブジェクトを生成 Statement stmt=con.createStatement(); String sql="insert into member(member_id,member_pass,family_name,first_name,birth_year,birth_month,birth_day,address,post_code,mail,"+"sex,home_tel,job) values('"+ member_id +"',"+ mempasslong +",'"+ family_name +"','"+ first_name +"',"+ birth_year +","+ birth_month +","+ birth_day +",'"+ address +"',"+ post_code +",'"+ mail +"',"+sexint+","+ home_tel +",'"+ job +"');"; int result=stmt.executeUpdate(sql);       stmt.executeBatch(); // データベースから切断 stmt.close(); con.close(); } catch (Exception e) { message = "登録失敗しました。"; request.setAttribute("message", message); return mapping.findForward("registererror"); } message = "登録完了しました。"; request.setAttribute("message", message); return mapping.findForward("success"); } } って書いてクラスからweb.xmlを参照してデータベース接続したいんですが、エラーが出ずに困っています。そもそもクラスからweb.xmlの情報を参照するやりかたはあるのですか?教えてください

  • JNDIについて

    緊急で困っています。宜しくお願いします。 JNDIを使ってDB接続しようとしているのですがエラーが出て接続できません。 ■発生箇所---------------------------------------- public static Connection getConnection() { Connection con = null; try { InitialContext context = new InitialContext(); DataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/MySQL"); con = ds.getConnection(); } catch (NamingException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return con; } のlookupの箇所です。 ------------------------------------------ server.xml <Context>タグの中に <Resource name="jdbc/MySQL" auth="Container" type="javax.sql.Datasource"> <ResourceParams name="jdbc/MySQL"> <parameter>    <name>factory</name>   <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <!-- Max Active <parameter> <name>maxActive</name> <value>100</value> </parameter> --> <!-- Max Idle <parameter> <name>maxIdle</name> <value>30</value> </parameter> --> <!-- Max Wait <parameter> <name>maxWait</name> <value>10000</value> </parameter> --> <parameter> <name>username</name> <value>***</value> </parameter> <parameter> <name>password</name> <value>***</value> </parameter> <parameter> <name>driverClassName</name> <value>com.mysql.jdbc.Driver</value> </parameter> <parameter> <name>url</name> <value>jdbc:mysql://localhost/DB名?useUnicode=true&amp;characterEncording=Windows-31J</value> </parameter> </ResourceParams> </Resource> </Context> ---------------------------------------------- web.xml <resource-ref> <res-ref-name>jdbc/MySQL</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> ---------------------------------------------------- 必要なライブラリはTOMCAT_HOME/common/libに配置しています。 ------------エラーログ javax.naming.NamingException: Cannot create resource instance at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:132) at javax.naming.spi.NamingManager.getObjectInstance(Unknown Source) at org.apache.naming.NamingContext.lookup(NamingContext.java:791) at org.apache.naming.NamingContext.lookup(NamingContext.java:138) at org.apache.naming.NamingContext.lookup(NamingContext.java:779) at org.apache.naming.NamingContext.lookup(NamingContext.java:138) at org.apache.naming.NamingContext.lookup(NamingContext.java:779) at org.apache.naming.NamingContext.lookup(NamingContext.java:138) at org.apache.naming.NamingContext.lookup(NamingContext.java:779) at org.apache.naming.NamingContext.lookup(NamingContext.java:151) at org.apache.naming.SelectorContext.lookup(SelectorContext.java:136) at javax.naming.InitialContext.lookup(Unknown Source) at com.llc.aison.seikei.util.DBUtil.getConnection(DBUtil.java:18) 環境: Tomcat5.0 mysql eclipse3.1.1 jdk1.4_12 以上宜しくお願いします。

    • ベストアンサー
    • Java
  • Tomcat6のコネクションプーリングについて

    Tomcat6のコネクションプーリングについて 現在、以下の環境で開発を行っているのですが、 データソースからConnectionを取得できていない状況です。 過去に同様の内容が記載されていたのですが、 内容が理解できず投稿させていただいております。 【フォルダ構成】 test  |  |--META-INF  |   |  |   --context.xml  |  |--WEB-INF     |      --web.xml 【環境】 Windows XP Pro Eclipse3.3.2 apache2.2 tomcat6.0 jdk1.6.0_18 mysql-connector-java-5.1.12-bin.jar Struts2 以下に、context.xml、web.xml及び、サーブレットのコードを記載します ■web.xml=========== <?xml version="1.0" encoding="UTF-8"?> ~~(抜粋)~~ <resource-ref> <res-ref-name>test</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app> ■context.xml======= <?xml version="1.0" encoding="UTF-8"?> <Context displayName="test" docBase="test" path="/test" reloadable="false"> <Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource" username="root" password="root" driverClassName="org.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost/test?useUnicode=true&amp;characterEncoding=UTF-8" maxActive="4" maxWait="5000" maxIdle="2" validationQuery="select cont(*) from db_fuzoku" /> </Context> ■サーブレットコード(抜粋)===== public class test_Dao { DataSource ds; public ArrayList select(){ ArrayList list = new ArrayList(); try { // 初期コンテキストを取得 Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); // ルックアップしてデータソースを取得 ds = (DataSource) envCtx.lookup("jdbc/test"); } catch (Exception e) { e.printStackTrace(); } Connection con = null; Statement stmt = null; try { // データソースからConnectionを取得 con = ds.getConnection(); ==================== 以上、よろしくお願いします。

  • StrutsのDataSourceの使い方。助けてください!

    今、DataSourceを使ったDB接続をやっているのですが、以下のエラーが出てしまいます。 javax.servlet.UnavailableException: Initializing application data source org.apache.struts.action.DATA_SOURCE at org.apache.struts.action.ActionServlet.initModuleDataSources(ActionServlet.java:1091) at org.apache.struts.action.ActionServlet.init(ActionServlet.java:472)・・・・・ おそらく、DataSourceが見つからないといわれていると思うのですが・・・。どこが悪いのかわかりません。以下はstruts-config.xmlのDataSourceの記述です。 <data-sources> <data-source> <set-property property="driverClass" value="org.gjt.mm.mysql.Driver" /> <set-property property="url" value="jdbc:mysql://localhost/test" /> <set-property property="user" value="root" /> <set-property property="password" value="root" /> </data-source> </data-sources> Mysqlを使っていて、DB名はtest。パスワード、ユーザ名はともにrootです。どこか気が付くところはありますか?また、JDBCDriverはどこに置けばいいんでしょうか?eclipseでやっているのですが・・・。まだ、素人な者で・・・。どうか、よろしくお願いいたします。

    • ベストアンサー
    • Java
  • apacheとtomcat連携時においてのJDBCの設定

    似たケースが検索で見つけられず 投稿させて頂きます。 JDBCをインストールしmysqlとの 連携をしたいのですがうまくいきません。 apacheとtomcatの連携に関しては 以下のページを参考にしました。 http://www.javaroad.jp/opensource/js_tomcat3.htm そしてJDBCの設定に関しては参考にしている本が古いため コネクションプーリングの設定がAdministratorになっており 当方のtomcat6バージョンではAdministratorが 設定できなかったため(できないですよね?)色々調べた結果 以下のファイルを設定しました。 アプリケーションルート・META-INF/context.xml ---------------------------------------------------------------- <Context displayName="Jsp_Servlet Samples" docBase="wl_jsp" path="/wl_jsp" reloadable="true"> <Realm className="org.apache.catalina.realm.DataSourceRealm"  ~中略(この部分は設定しなくても良いと書かれていました)~ <Resource name="jdbc/Wl_Jsp" auth="Container" type="javax.sql.DataSource" maxActive="4" maxIdle="2" maxWait="5000" driverClassName="org.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost/wl_jsp?useUnicode=true&characterEncoding=Windows-31J" username="wl_jsp" password="wl_jsp" validationQuery="SELECT count(*) FROM books" /> ---------------------------------------------------------------- 以下本に書かれていた設定値です プロパティ    |概要         |設定値 ---------------------------------------------------------------- JNDI名      |データソースを識別  |jdbc/Wl_Jsp ---------------------------------------------------------------- データソースURL  |接続文字列      |jdbc:mysql://localhost/wl_jsp?useUnicode=true&characterEncoding=Windows-31J ---------------------------------------------------------------- JDBCドライバクラス|ドライバクラス修飾名 |org.gjt.mm.mysql.Driver ---------------------------------------------------------------- ユーザー名    |接続時のユーザー名  |wl_jsp ---------------------------------------------------------------- パスワード    |接続時のパスワード  |wl_jsp ---------------------------------------------------------------- 有効な最大接続数 |プーリングする最大数 |4 ---------------------------------------------------------------- アイドル状態の最大接続数|待機時に最低維持する接続数|2 ---------------------------------------------------------------- 最大接続待ち時間 |接続に対しての待ち時間|5000(ミリ秒) ---------------------------------------------------------------- クエリの検証   |接続検証用のSQL命令  |SELECT count(*)FROMbooks web.xmlについてはweb-appタグ直下に以下を追加しました。 <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/Wl_Jsp</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> mysql-connector-java-5.1.7-bin.jarファイルについては Toncat 6.0/common/libに保存せよと本にはありますが commonディレクトリが無いためToncat 6.0/libに保存してあります。 またCLASSPATHの設定も本にはありませんでしたが ネットで色々調べていたらでてきましたので 以下のように設定してみましたがだめでした。 -------------------------------------------------------------- C:\Program Files\Apache Software Foundation\ Tomcat 6.0\libmysql-connector-java-5.1.7-bin.jar; -------------------------------------------------------------- 実行結果になります。 ---------------------------------------------------------------- javax.servlet.jsp.JspException: DataSource が無効であるため、Connection を取得できません: "org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'" ---------------------------------------------------------------- 環境です --------------- os:windows xp home sp2 apache2.2 tomcat6.0 jdk1.6.0_10 mysql-connector-java-5.1.7-bin.jar --------------- 長乱文失礼致しました。 他に必要な設定などありますでしょうか? アドバイス・ヒントなどありましたらお願いします。

    • ベストアンサー
    • Java
  • Tomcat5.0でJNDI

    お世話になります。 Tomcat5.0で、JNDIを使ってコネクションプーリングを実現しようとしてますが、なかなかうまいこといきません。 コンテキストファイル(hoge.xml)の設定 前略 <Resource name="jdbc/hoge" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/hoge">   <parameter>     <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>   </parameter>   <parameter>     <name>driverClassName</name>     <value>com.mysql.jdbc.Driver</value>   </parameter>   <parameter>     <name>url</name>     <value>jdbc:mysql://localhost/hoge</value>   </parameter>   <parameter>     <name>username</name>     <value>hogeuser</value>   </parameter>   <parameter>     <name>password</name>     <value>hogepass</value>   </parameter> 中略 </ResourceParams> 後略 これを、トムキャットホーム\conf\Catalina\localhostに置いています。 Javaの方のソース String dsString = getServlet().getInitParameter("java:comp/env/jdbc/hoge"); InitialContext context = new InitialContext(); DataSource ds = (DataSource) context.lookup(dsString); Connection connection = ds.getConnection(); 実行すると、 名前 java:/comp/env/jdbc/hoge はこのコンテキストにバインドされていません という具合に怒られます。名前はjdbc/hogeで合ってると思うのですが、他に何かおかしいところがあるでしょうか。 また他に調べるべき点はどのようなところでしょうか。 どうぞよろしくご教授ください。

  • MySQL と JDBCで・・・

    質問させてください。 windows98に ・j2sdk-1_4_1_07-windows-i586.exe ・mysql-4.0.25-win32.zip ・mysql-connector-java-3.1.10.zip をダウンロードしました。 環境変数を設定し javaソースコードを作成しました。 コンパイルは出来たのですが、実行すると コマンドプロンプトに java.sql.SQLException: Access denied for user: '@localhost' to database 'hellodb ' at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2921) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:770) at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1228) at com.mysql.jdbc.Connection.createNewIO(Connection.java:2544) at com.mysql.jdbc.Connection.<init>(Connection.java:1474) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java :264) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:193) at HelloWorldJDBCMySQL.main(HelloWorldJDBCMySQL.java:15) と表示されてしまいます。 過去ログを見させていただきましたが自分の求める回答を見つけきれませんでした。 どなたかご教授のほど、よろしくお願いします。

  • PHPでデータベース(mySQL)から値を取りだすには

    PHPで値をmySQLに保存するコードを作成するのに 成功したのはいいのですが、値を取り出して 出力するコードがうまく書けません ネットで調べてみたり、参考書を読んで やっているのですがうまくいきません こういうコードを書いたのですが <?php $conn=mysql_connect("localhost", "user", "pass"); if (!$conn) { die('接続失敗です。'.mysql_error()); } mysql_select_db("database", $conn); mysql_query("SET NAMES 'ja-utf8'", $conn); $sql='SELECT caram, FROM table'; $row=mysql_query($sql, $conn); $res=mysql_fetch_assoc($row); echo htmlspecialchars($res, ENT_QUOTES); mysql_close(); ?> どこが間違っているかご指摘いただけると ありがたいです。

    • 締切済み
    • PHP