- PR -

JSPでのパッケージについて

投稿者投稿内容
butthead
大ベテラン
会議室デビュー日: 2004/01/14
投稿数: 162
投稿日時: 2004-01-14 11:32
まだ、JSPをはじめたばかりの初心者です。
JSPで自分でクラスファイルを作り、それを
importする際に、TOMCATのROOTの下のWEBーINFにclassesディレクトリ
をつくり、そこへTEMP\なんとか.classを入れるのですが、認識してくれません。
<%@ page import="package.temp.なんとか" %>
あるいはJDKのlib/extの下にCLASSファイルを入れてみてもやはりコンパイルすると
認識してくれません。
どのようにしてTOMCATでパッケージングすれば、コンパイラがクラスを認識してくれるのか知りたいです。
よろしくお願いします。
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2004-01-14 11:47
引用:

JSPで自分でクラスファイルを作り、それを...


ん?JSPをご自分でコンパイルされたのですか?

JSPは、Servletコンテナ(この場合はTomcat)の手で自動的に

JSPソースファイル->Servletソースファイル->Servletクラスファイル

という流れでクラスファイルに変換され、自動的にメモリ上にロードされます。
JSPを自分でコンパイルする必要はありません。

# ただし、稼働環境のAPサーバなどで事前に全ての(もしくは必要な)JSPをコンパイル
# しておく、「プリコンパイル」という手法を用いる場合もあります。ただ、これは
# JSPを学ぶ上ではとりあえず脇に置いといて良いものです。
butthead
大ベテラン
会議室デビュー日: 2004/01/14
投稿数: 162
投稿日時: 2004-01-14 11:56
すみません。
日本語が間違ってました。
クラスはすでに自分で作ってあったクラスです。
それをimportする際にどこにおけばそのクラスを
JSPコードの中で使うことができるのでしょうか。
先ほど書いた方法でTOMCATを再起動しても認識してくれませんでした。
ぽん
大ベテラン
会議室デビュー日: 2003/05/13
投稿数: 157
投稿日時: 2004-01-14 12:03
「・・・\WEBーINF\classes\temp\Aaa.class」のクラスファイルは
「<%@ page import="temp.Aaa" %>」でimport出来ます。

注意:大文字・小文字は区別されます

[ メッセージ編集済み 編集者: ぽん 編集日時 2004-01-14 12:05 ]
butthead
大ベテラン
会議室デビュー日: 2004/01/14
投稿数: 162
投稿日時: 2004-01-14 12:51
上記のようにしてもできませんでした。
classpathをROOT/WEB-INF/classes/*
として通したのですが、できませんでした。

何が悪いのかさっぱりわからなくなってきました。

もっともシンプルにできる方法を教えてください。
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2004-01-14 13:16
引用:

classpathをROOT/WEB-INF/classes/*
として通したのですが、できませんでした。


Webアプリケーションの置き場所は、例えばTomcatのインストール先%TOMCAT_HOME%が
コード:
C:\Program Files\Apache Group\Tomcat 4.1


であるとすると、
コード:
%TOMCAT_HOME%\webapps


以下になります。ここにテスト用にMyWebというフォルダを作成し、更にその下にJSPや
クラスファイルを配置します。クラスファイルは
コード:
%TOMCAT_HOME%\webapps\MyWeb\WEB-INF\classes


以下に、JARファイルにまとめられたクラスファイルは
コード:
%TOMCAT_HOME%\webapps\MyWeb\WEB-INF\lib


以下に置くことで、Tomcatによって「自動的に」メモリにロードされます。
従ってこれらのディレクトリをクラスパスに追加する必要はありません

Webアプリにアクセスしたい場合は、Tomcatがローカルホストの8080番ポートで稼動している
と仮定すると、WebアプリのURLは
コード:
http://localhost:8080/MyWeb/


になります。

[ メッセージ編集済み 編集者: おばけ 編集日時 2004-01-14 13:19 ]
米山@クロノス
大ベテラン
会議室デビュー日: 2003/06/10
投稿数: 103
お住まい・勤務地: 大阪市淀川区西中島4-13-22 新大阪淀川ビル5F
投稿日時: 2004-01-14 14:08
こんにちは。米山@クロノスです。

引用:

buttheadさんの書き込み (2004-01-14 11:32) より:
どのようにしてTOMCATでパッケージングすれば、コンパイラがクラスを認識してくれるのか知りたいです。



そもそも実行時エラーとなっているのでしょうか?それともコンパイルエラーとなっているのでしょうか?「コンパイラがクラスを認識」ということはコンパイルエラーだと思いますが。。。

[quote]
おばけさんの書き込みより

以下に、JARファイルにまとめられたクラスファイルは

コード:
 

%TOMCAT_HOME%\webapps\MyWeb\WEB-INF\lib



以下に置くことで、Tomcatによって「自動的に」メモリにロードされます。
従ってこれらのディレクトリをクラスパスに追加する必要はありません。
[quote/]

buttheadさんは「Tomcatでパッケージングすれば」って言ってますが、自分で作成されたクラスファイルはJAR化されているのでしょうか?
ただのクラスで、実行時エラーでなくコンパイルエラーが出ているような気がします。

どちらにしても、パッケージ宣言が間違っているとか、パッケージのディレクトリ配置がおかしいとかといった、TomcatやJSP以前の問題のような気がしますが。。。

ディレクトリ構成とファイル位置、それから、どのようにパッケージ宣言を行っていますか?

[ メッセージ編集済み 編集者: 米山@クロノス 編集日時 2004-01-14 14:09 ]

[ メッセージ編集済み 編集者: 米山@クロノス 編集日時 2004-01-14 14:10 ]
米山@クロノス
大ベテラン
会議室デビュー日: 2003/06/10
投稿数: 103
お住まい・勤務地: 大阪市淀川区西中島4-13-22 新大阪淀川ビル5F
投稿日時: 2004-01-14 14:51
米山@クロノスです。

よくよく読めば、JAR化していないことは書いてますね。すいません。

引用:

buttheadさんの書き込み (2004-01-14 11:32) より:
JSPで自分でクラスファイルを作り、それを
importする際に、TOMCATのROOTの下のWEBーINFにclassesディレクトリ
をつくり、そこへTEMPなんとか.classを入れるのですが、認識してくれません。



やはりパッケージの定義まわりだとおもいますが。

スキルアップ/キャリアアップ(JOB@IT)