• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JavaBeans が使用出来ない)

JavaBeansの使用できない問題

このQ&Aのポイント
  • TomcatとApacheを連携させている中で、JavaBeansが使用できない問題が発生しています。
  • jsp:useBeansタグを利用したJSPファイルを作成しましたが、クラスファイルの読み込みエラーが発生しました。
  • サーブレットに変換されたファイルを確認したところ、クラスのimport文に問題がありました。WEB-INF/classesディレクトリにクラスファイルを配置しているにもかかわらず、正しくimportできませんでした。CLASSPATHの設定などを確認する必要があります。

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

  • ベストアンサー
  • persona
  • ベストアンサー率57% (4/7)
回答No.1

恐らく、workフォルダでJSPServletを生成する際に生じるコンパイルエラーみたいですね。 自分も今まで、JavaBeansを使う際にスクリプトレットタグに import="samplebeans"に書いていました。 ただ、Tomcatのversionが4.1になってworkフォルダが作られてから、 今までのとおりにはいかなくなりました。 そこで予め、これから回答するものは1パターンに過ぎないと言うことを 頭の片隅において読んで下さい。 まず、通常import文は既に"パッケージング"されたJavaのクラスを 呼び出す際に使います。 ですから、JSPServletを作る際にいきなりオリジナルのBeanをimportされても、 コンパイラーからすれば『???』といった感じになってしまいます。 だったら、そのプログラムに関係するBean及びServletを一括りにして、 オリジナルのパッケージを作ります。 例えば、プログラムの最初に package foobar; と書きます。 勿論、この際には"foobar"というフォルダを作り、その中にプログラムが入ってなければなりません。 packageを作った際のコンパイルの仕方はお分かりかとも思いますが、 一応書いておきます。 >javac foobar\samplebeans.java もし、foobarのフォルダにあるjavaファイルを一度にコンパイルしたい場合は >javac foobar\*.java とワイルドカードを使うのも1つの手かもしれません。 これによって、オリジナルパッケージfoobarが完成しました。 続いて、このフォルダごとclassesの直下に移動させます。 後は、jsp内のソースの書き換えです。 <jsp:useBean>を使用する場合、sessionでscopeしているので、 この場合import文が省略できるような気もしますが、 まぁ、それは今回置いておいて……。 スクリプトレットタグで囲んであるimport="samplebeans"の部分を import="foobar.*"に置き換えます。 また、jsp内でsamplebeansをインスタンス化しているのであれば、 その際にも、samplebeansの前にfoobarを付けてfoobar.samplebeansと する必要があります。 CLASSPATHをいじらなくても、これで上手くJSPServletは生成されるでしょうし、 また、ボタンなどでServletを呼び出す際にも、foobar.Servlet名のように すれば問題なく移行する事でしょう。 ただ、いちいちServletを呼び出す際にも"foobar."を付けるのが面倒なようでしたら、 web.xml内でマッピングする事をお薦めします。

関連するQ&A