- - PR -
パッケージのimportについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-11-13 04:33
JSP&サーブレットについて勉強中のtataです。
環境 Win98 j2sdk1.4.2_04 Tomcat4.1.30 フォルダ階層(わかりにくくてすいません。) C:/Tomcat 4.1 ・+common ・+cof ・+webapps ・・・・・+mysamples ・・・・・・・・・+(HTMLファイルとJSPファイル) ・・・・・・・・・+web-inf ・・・・・・・・・・・・・+(web.xml) ・・・・・・・・・・・・・+classes ・・・・・・・・・・・・・・・・・+(サーブレット) ・・・・・・・・・・・・・・・・・+mypackage ・・・・・・・・・・・・・・・・・・・・・+A.java(Beanとして利用したい) 質問ですが、 A.javaには「package mypackage;」と宣言していますが、 サーブレットから「import mypackage.A;」としてアクセスできません。 JSPから「<%@ page import="mypackage.A" %>としてアクセスできます。 参考書ではこのSectionを学ぶにあたって、特にファイルの格納場所の指示がないので上記のとおりにそれぞれ格納しています。 サーブレットを/common/lib/servlet.jarでコンパイルすると「パッケージ mypackageは存在しません」と表示されます。その他はAの参照変数を指して「シンボルを解決できません」と数箇所表示されるだけです。 JSPのみ、サーブレットのみ、HTMLとJSPの連携、HTMLとサーブレット連携は現在もできますので、servlet.xml、web.xmlの設定はあってると思います。 ちなみにHTMLからサーブレットへ値を渡してBean(A.java)に処理をさせるということをしようとしています。 どなたかおわかりになる方、どうかご教授お願いします。また、ご質問等もお申し付けください。よろしくお願いします。 |
|
投稿日時: 2004-11-13 09:38
サーブレットをどのようにコンパイルしていますか? 何もしなくてもWEB-INF/classes以下を
参照してくれるのは実行時だけですので、コンパイル時にはWEB-INF/classesもクラスパスに 設定する必要があります。 |
|
投稿日時: 2004-11-13 19:23
お返事ありがとうございます。ukさん。
コンパイルの方法は C:\Tomcat 4.1\webapps\mysamples\WEB-INF\classes>javac -classpath C:\TOMCAT~1.1\COMMON\LIB\SERVLET.JAR Sample.java としてます。-classpath以降に「servlet.jar」をDrag&Dropしてます。 javac -classpath C:\Tomcat4.1\common\lib\servlet.jar Sample.java と手入力(Tomcatと4.1の間に空白ありだと読み取られないみたいなので空白を省いてます) すると、同ファイル中でimportしているHttpServletRequestやHttpServletResponse、ServletExceptionなども「シンボルを解決できません」と表示されます。 「\」は円マークです。 「TOMCAT〜1.1」の「〜」は半角で上のほうに表示される記号です。 これでお答えになってますでしょうか。よろしくお願いします。 |
|
投稿日時: 2004-11-13 22:16
ukさんの仰るとおりクラスパスの問題ですよね?
*WEB-INF/classes をクラスパスに入れる必要がある*という説明の意味がわからないのでしょうか? |
|
投稿日時: 2004-11-14 01:03
ありがとうございます。インギさん。
正直わかりません。 javac -classpath C:\Tomcat4.1\webapps\mysamples\WEB-INF\classes;C:\Tomcat4.1\common\lib\servlet.jar Sample.java としてみたのですが実行できませんでした(Aの参照変数を指して「シンボルを解決できません」と表示されます)。 ・A.javaでは package mypackage; ・Sample.java(サーブレット) import mypackage.A; と記述しています。 参考HP http://www.gimlay.org/~javafaq/S004.html#S004-02 よろしければクラスパスの設定をどうすればいいのか教えていただけないでしょうか。 |
|
投稿日時: 2004-11-14 01:21
>javac -classpath C:?Tomcat4.1?webapps?mysamples?WEB-INF?classes;>C:?Tomcat4.1?common?lib?servlet.jar Sample.java
この方法なら指定に問題はないですね。 #2004-11-13 19:23 の書き込みでは WEB-INF?classes がクラスパスに通してありませんでした あれ?よく確認すると >・・・・・・・・・・・・・・・・・+mypackage >・・・・・・・・・・・・・・・・・・・・・+A.java(Beanとして利用した クラスパスにソースファイルが配置されているようです。"classes"フォルダですからクラスファイルを配置しましょう。 |
|
投稿日時: 2004-11-14 01:56
お返事ありがとうございます。インギさん。
>#2004-11-13 19:23 の書き込みでは WEB-INF?classes がクラスパスに通してありませんでした ukさんとインギさんからのご回答がなければ、「classpath」は頭にありませんでした。基本的なことを忘れていたというより理解できていなかったです。本当にありがとうございます。 |
1