• 締切済み

Tomcat4.1のworkフォルダとJavaについて…。

実は、Tomcat4.0とRDBを使って簡単な商用サイトをlocalhost上で動かせるように 作りました。 それから、Tomcatのversionを4.1.18に変え、CLASSPATHも間違いなく変更しました。 version4.1になってからworkフォルダというものができたのですが、その部分について知識のある方がいたら、是非とも教えて頂きたい事があります。。 まず、workフォルダはブラウザ上からjspファイルを開こうとすると、 そのフォルダ内でjspファイルをServlet化したファイル――例えばopen_jsp.java――を自動的に生成します。 どうにか一応そのServletのコンパイルは通ったのですが、 『Cannot create JDBC driver of class ‘com.mysql.jdbc.Driver' for connect URL 'null'』 というExceptionエラーが表示されます。 長々となりましたが、この意味が分かるようで分からなくて困っています。 classファイルもでき、Tomcatのserver.xmlにはしっかりとurlを入れているのに何故画面が表示されないのでしょうか。 長々となりましたが、宜しくお願いします。

  • Java
  • 回答数2
  • ありがとう数2

みんなの回答

  • aton
  • ベストアンサー率47% (160/334)
回答No.2

>>- mySQLのJDBCドライバーのライブラリーも移行したか >>- mySQLのJDBCドライバーの設定も移行したか >この2行はコネクタをTomcat4.1のlibファイルにコピーしたのか、という理解の仕方で宜しいのでしょうか。 前者はそう云う意味です。 後者は違います。 コネクターの初期設定ファイルなどがある場合,それも移行したか,という意味です。 >>特に後者のmySQLのDBを指定するURLが怪しいと思われます。 >ここでのURLとは‘com.mysql.jdbc.Driver‘の事なんでしょうか。 >いや、違うかな( ̄▽ ̄;) お察しの通り違います。 JDBCのコネクターを初期化する時には,ドライバー識別子,ホスト名,ポート番号,データベース名などを指定するURLが必要になります。 私はPostgreSQLしか使ったことはありませんが,PostgreSQLの場合こんな感じです。 jdbc:posggresql://localhost:5432/testdb mySQLの場合もたぶん, jdbc:mysql://ホスト名:ポート番号/データベース名 のようになるのではないかと思いますが,personaさんの状況ではこれが指定されるべきURLが null になっているというメッセージが出ているので,そのあたりをチェックしてみては,という意味で書きました。

persona
質問者

お礼

今更ではありますが、最近になって回答者にお礼をしない事がどれだけ失礼な事かを感じまして書く次第であります。 補足だけしといて、肝心なお礼の言葉をしていませんでした。 この後、どうなったかはもう記憶にありませんが、2度もレスを頂けた事は本当に感謝します。

persona
質問者

補足

まず初めに、atonさんには2度もアドバイスを頂き、誠に感謝するしだいです。 その上でのですが、 >コネクターの初期設定ファイルなどがある場合,それも移行したか,という意味です。 この部分なのですが、それは、拡張子で言うと『jar』ですか、それとも『xml』なのでしょうか。 このページでどのファイルか明確にできるのかどうか分からないので、拡張子という形で書かせていただきました。 ちなみに、libファイルにあったjarファイルは全て移行してみました。 直りませんでしたけど……グスグス (><。)。。 後もう1つの点ですね。 自分も一応はそっちだと思ったんですけど、そのまま書くのは、と躊躇してしまったのですが、 そういう風に書けば良かったんですね。 DriverClassNameではなく、それと繋げるためのdriverNameの方もTomcat4.1のserver.xmlの<Context> タグないの<parameter>タグの<value>として書き込んであります。 ここで、もう1つ付け加えても宜しいでしょうか。 実は、JSPファイルがworkフォルダ内でServlet化した際に、 今までは実行できた<%@ page import="SOSBean" %>というのが Servlet化したjavaファイルを開くと、そのままimport文として import = SOSBean となってしまうので、この商用サイト内で使用するファイルのフォルダをpakageとして一まとめにし、 JSPファイル内では<%@ pageimport="pakage.SOSBean" %>としてみました。すると、 Servlet化したファイルないでも import = pakage.*となり、状況が1歩進展したのですが、この場合データソースを取得してくるDataSourceBeanと他のファイルを親子に分けた方がいいと思いますか。 まだまだ混乱しているpersonaでした( ̄▽ ̄;)

  • aton
  • ベストアンサー率47% (160/334)
回答No.1

メッセージを見たところではJDBCドライバーの問題のようです。 Tomcatを4.0から4.1に移行する時, - mySQLのJDBCドライバーのライブラリーも移行したか - mySQLのJDBCドライバーの設定も移行したか あたりをチェックしてみてはどうでしょうか? 特に後者のmySQLのDBを指定するURLが怪しいと思われます。

persona
質問者

お礼

今更ではありますが、最近になって回答者にお礼をしない事がどれだけ失礼な事かを感じまして書く次第であります。 補足だけしといて、肝心なお礼の言葉をしていませんでした。 随分前向きに悩んでいた自分を思い出しますが、完全燃焼する前に終わってしまいました。 物凄く無念です。 このバカ者に付き合って頂き、本当にありがとうございます。

persona
質問者

補足

>メッセージを見たところではJDBCドライバーの問題のようです。 そうなんですよね。 >- mySQLのJDBCドライバーのライブラリーも移行したか >- mySQLのJDBCドライバーの設定も移行したか この2行はコネクタをTomcat4.1のlibファイルにコピーしたのか、という理解の仕方で宜しいのでしょうか。 >特に後者のmySQLのDBを指定するURLが怪しいと思われます。 ここでのURLとは‘com.mysql.jdbc.Driver‘の事なんでしょうか。 いや、違うかな( ̄▽ ̄;) versionが変わって、Tomcat自体も色々なフォルダが増えたので、 以前のままのserver.xmlの記述では駄目なのかもしれませんね。

関連するQ&A

  • Tomcatのセットアップ

    ただ今、servletとjspの勉強をしている者です。 今までTomcatを使っていたのですが、最近動きがおかしいので、解決方法をお聞きしたく、投稿させていただきます。 Tomcat4.0でOSはMeです。 おかしい、というのは、jspがうまく表示されないのです。コードを書き換えたファイルを古いものと差し替えても、実行すると古いもののほうが表示されてしまうのです。workにあるファイルを全部消してから実行しても同じです。jspファイル自体を削除しても、古いものが表示され続けます。 そこでそのTomcatを削除し、新しく入れ直したのですが、今度はServletが実行されません。 自分で作った、Servletで画面遷移をしjspで表示するプログラムを実行すると、画面が真っ白になります。コードを見ると、中身が空のHTMLがはかれていました。 そこで画面表示する役割のjspにURLを入れて直接アクセスすると、それは表示されるのです。 私がつくったServletが変なのかな、と思い、参考書についているCDからコピーしてきたServlet(Servletを頑張ろう、と表示されるだけの、簡単なもの)を実行しても画面が真っ白なのです。 エラーがでるならコードの直しようがありますが、画面が真っ白、というのはどう対応して良いのか皆目検討もつきません。 解決方法をどなたか私にご教示いただけないでしょうか?

  • Javaサーブレットを読み込んでくれません…

    現在、社内での新プロジェクトの為にJSPの研修を行っています。 開発環境 ・Windows2000 Service Pack 4 ・JDK 1.5.0_06 ・Tomcat 5.5.20 JDKとTomcatのインストールは正常に終了し、http://localhost:8080/は正常に見ることが出来ました。 その後、<Tomcat-Home>/webapps/ROOT/entryフォルダを作成し、 ・entry/WEB-INF/ ・entry/WEB-INF/classes/ 以上二つのフォルダを作成して、WEB-INFフォルダ直下にweb.xmlファイルを作成しています。 classesフォルダの中にHelloServlet.classを置き、web.xmlファイルの中身を書き換えてTomcatを再起動させてみたのですが、http://localhost:8080/entry/HelloServletとURLを打ってみても見ることが出来ません。 何か間違っているのか、設定不足なのか…教えていただければ幸いです、よろしくお願いいたします。 ************<web.xml>************ <web-app> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/HelloServlet</url-pattern> </servlet-mapping> *********************************

    • ベストアンサー
    • Java
  • Tomcat Servletが動きません

    『Javaへの道:Tomcat』のページを参考に同じようにやってるのですが、 JSPはうまくいくのですがServletがうまくいきません。 (長文になります) 参考ページと私の環境で違う点 Windows XP Home → XP Pro Tomcat 6 → Tomcat 7 JDK6.0 → JDK6.23 ポート8080 → 8081 以下のファイル、フォルダを作りました(参考ページそのままです)。 C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\javaroad\jspdir\HelloJsp.jsp C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\javaroad\WEB-IMF\classes\HelloServlet.class C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\javaroad\WEB-IMF\web.xml C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\Catalina\localhost\javaroad.xml --↓↓HelloJsp.jspここから↓↓-- <HTML> <BODY> from JSP source<br> <%= new java.util.Date() %> </BODY> </HTML> --↑↑HelloJsp.jspここまで↑↑-- --↓↓web.xmlここから↓↓-- <?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"> <servlet> <servlet-name>Hello</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Hello</servlet-name> <url-pattern>/Hello</url-pattern> </servlet-mapping> </web-app> --↑↑web.xmlここまで↑↑-- --↓↓javaroad.xmlここから↓↓-- <Context path="/javaroad" reloadable="false"/> --↑↑javaroad.xmlここまで↑↑-- JSPを起動 http://localhost:8081/javaroad/jspdir/HelloJsp.jsp → 正しく表示される Servletを起動 http://localhost:8081/javaroad/Hello → ステータス404 The requested resource (/javaroad/Hello) is not available. <気になる点> 1.Tomcatを起動するためStratボタン押しても1回では起動せず、2~3回で起動する。  1回目のときcommons-daemon.2011-01-15.logにこんなログが出る。  [2011-01-15 23:01:16] [error] Pid file 'C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\tomcat7.pid' exists  [2011-01-15 23:01:16] [error] ServiceStart returned 1 2.servletクラスは正しくコンパイルできているのか 状況を詳しく説明しようとして長々と書いてしましたが Servletを表示するにはどうしたらいいでしょう? 足りない情報があれば追加します。

    • ベストアンサー
    • Java
  • JSP実行時のCLASSPATHはいつもと違う?

    Tomcat3.3&JDK1.3でJSPの勉強をしています。 JDBCでDB(MySQL)に接続するために、 Class.forName("org.gjt.mm.mysql.Driver"); でJDBCドライバをロードしようとすると、ClassNotFoundExceptionが発生します。 同じようなルーチンをJSPではなく、普通のJAVAアプリケーションとしてjavacでコンパイルしてjavaで実行したときは、うまく動きます。 多分、JSP実行時のCLASSPATHにあたるものにJDBCドライバの場所を設定すればいいと思うのですが、どこを設定すればいいのかわかりません。 それとも、CLASSPATHの問題ではないのでしょうか。 ぜひご教授ください。よろしくお願いします。

    • ベストアンサー
    • Java
  • Tomcatにおけるサーブレットの呼び出し

    tomcatに関してですが、現在サーブレットからjspを呼び出すようなことをしたいと思い、web.xmlを以下のように設定し、”http:localhost:8080/servlet/Login”としても『HTTP Status 404 - 』が返却されます。jspからサーブレットを呼び出すことはできるのですが・・・(この場合、jspファイルをWEB-INFの直下にディレクトリを作成するとやはりアクセスができませんでした。WEB-INFと同レベルに置けばアクセスは可能でした。)。 どなたかわかる方がいれば教えて下さい! よろしくお願いします。 --------------- 環境 --------------- Windows2000Server eclipse ver2.1.1 tomcat ver4.1 --------------- ディレクトリ構成 --------------- WEB-INF Lclasses | LLogin_serv.java Ljsp LLogin.jsp --------------- web.xml --------------- <?xml version="1.0" encoding="shift_jis"?> <!DOCTYPE web-app PUBLIC "-//SUN Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>Login</servlet-name> <servlet-class>serv.Login_serv</servlet-class> </servlet> <servlet-mapping> <servlet-name>Login</servlet> <url-pattern>Login</url-pattern> </servlet-mapping> </web-app> 補足:tomcat-confにあるweb.xmlの『invoker』はコメントを外し有効にしてます。

    • ベストアンサー
    • Java
  • tomcatのエラー処理について

    Tomcatが設定できなくなんとか試行錯誤をしているうちにlogsディレクトリの中にやっと(今までは全然表示されず)エラー内容(2つのファイル)が以下ように表示されてきました。処理の仕方がわかりません。アドバイスお願いします。 一つ目は jsper.logファイル 2002-02-03 00:26:34 - Scratch dir for the JSP engine is: C:\JAKART~1             \work\localhost_8080%2Fexamples 2002-02-03 00:26:34 - IMPORTANT: Do not modify the generated servlets 二つ目は servlet.logファイル 2002-02-03 00:26:34 - path="/examples" :jsp: init 2002-02-03 00:26:34 - path="/admin" :jsp: init 2002-02-03 00:26:35 - path="" :jsp: init 2002-02-03 00:26:35 - path="/test" :jsp: init というような内容です。このあとどうすれば???????? 現在以下の環境内容です。 win98SE tomcat3.2.4 PATH=C:\jdk1.3.1_01\bin;c:\Jakart~1t\bin SET JAVA_HOME=C:\jdk1.3.1_01 SET TOMCAT_HOME=C:\Jakart~1 SET CLASSPATH=%TOMCAT_HOME%\lib\servlet.jar;%JAVA_HOME%\lib\tools.jar

  • JAVA ServletでSQL Serverに接続できないんですが。

    マイクロソフトのサイト(SQL SERVER2000 Driver for JDBC)から ドライバーを取ってきて、JAVAからDB接続テストを行っています。 最初に簡単なJAVAアプリを作って実行したところ、うまく動作しました。その後、Servletで同様のtestをしたところ、Tomcatのコンソール画面に、ClassNotFoundExceptionが出て、実行できません。 下記の命令が、処理できないようです。 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); CLASSPATHの設定もコマンドプロンプトで、setコマンド実行結果で確認済みです。 他のデータベース(MySQL)では、Servlet,JSP,JAVAアプリすべて、うまく実行できました。 ご存知の方、よろしくお願いいたします。 環境:(1台のマシン内での仮想ネットワーク) windows XP Pro (SP1) j2SDK 1.4.1_03 Tomcat4.1 SQL Server2000

  • Tomcat6.0でのJSP

    Tomcat6.0を使ってJSPファイルからMYSQLへ接続しようとします。 ブラウザーからアクセスするとしたのようなエラーが表示されます。 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver javaでMYSQLへアクセスするソースを作成しコンパイルして実行すると 正常にMYSQLにアクセスできました。 com.mysql.jdbc.Driverがないとは思うのですが。。。。 まず、何から調べたらいいのか?教えてください

  • Tomcat内のJSPファイルを削除したい

    事情がありにTomcat内のフォルダを 見せなければならなくなりました。 他人にTomcat内のファルダにあるサーブレット(+Beans等のクラスファイル)と JSPのソースを見られない様にしたいです。 またその上で実行も可能にしたいのですがどうすればいいでしょうか? サーブレット等は Tomcat 7.0/webapps/MyWebSite/WEB-INF/classes以下の クラスファイル(.class)だけを残してJavaファイル(.java)を削除 するか、Eclipseでソースをエクスポートさせない様にすると Javaのソースは見れなくなると思いますが、 JSPの場合だと Tomcat 7.0/webapps/MyWebSite/以下の JSPファイル(.jsp)を削除して、 Tomcat 7.0/work/ 以下にあるJSPをサーブレットに変換後 コンパイルされたファイル(.class)を残すだけではダメな様です。 他に方法はあるでしょうか? サーブレットのソースを見られないだけでも良しと考えるべきでしょうか?

    • ベストアンサー
    • Java
  • eclipse + lomboz + tomcatでのサーブレットの実行方法

    お世話になります。 現在、eclipse + lomboz + tomcatを連携し、メッセージを表示するサーブレット(一部抜粋:参照1)を実行しようとしているのですが、ブラウザにエラーメッセージ(内容:ページが見つかりません HTTP 404 - ファイル未検出)が表示されてしまいます。デプロイ、debug serverは成功してるのですが、サーブレットファイルがうまく配置されてないのでしょうか? web.xmlのmappingやserver.xmlの設定はチェックしております(参照2)。 直接URLで指定したjspファイル、tomcatのサンプルサーブレットの表示はできます。 参照1 ********** SC.java の一部抜粋****************** PrintWriter out = response.getWriter(); out.println("HelloServlet"); *********************************************** 参照2 ********** server.xml ************  <Context path="/SC" reloadable="true" docBase="○○" workDir="○○" /> ********************************** ********** web.xmlの編集 ********** <servlet> <servlet-name>SC</servlet-name> <servlet-class>SC</servlet-class> </servlet> <servlet-mapping> <servlet-name>SC</servlet-name> <url-pattern>/SC</url-pattern> </servlet-mapping> ********************************** ソフトのバージョン  Eclipse:3.0.2  rg.objectweb.lomboz_3.0.1.N20050106  emf-sdo-xsd-SDK-2.0.2  tomcat4.1.27 一般的に何か足りない点や間違ってる点がありましたらご教授願います。 宜しくお願いします。