Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

なぜにエラーが…ヽ(`Д´)ノウワーン

 Javaで簡単なWebアプリケーションを作っていて、
Tomcatを使っています。WEB-INFのclassesというフォルダに
Listというサーブレットのソースファイルを、
classesというフォルダ内にbeansというフォルダがあり、
その中にはCapsuleというビーンズのソースファイルが置いてあります。
 Listのソースコードには「import beans.*;」という文を
記述して、beans内のCapsuleにアクセス(参照?)できるように
したいのですが、Listをコンパイルすると
「List.java:1: パッケージ beans は存在しません。」
というエラーが出てしまいます。なぜでしょうか…?

 あまり専門用語を知らない+文章作成能力が乏しいため、
読みづらい文章になってしまいすみません…(汗)

13

回答

89832

閲覧

13件の回答

評価

0

フォルダ構成がいまいち分かりませんが、まずはCapsuleをコンパイルしないと、Listからは見えません。

評価

0

手抜き文章ですみません( ´-ω-)ビーンズはコンパイル済みです。
フォルダ構成は下記のようになっています。

MyApp
 |
 |—WEB-INF
 |  |
 |  |—classes --------サーブレットクラスファイル配備(List.class)
 |     |
 |     |—beans ----JavaBeansクラスファイル配備(Capsule.class)
 |
 |—JSPS ----------------JSPソースコード配備

評価

0

単純なことですが、フォルダ名のミスなどではないですよね。

○beans
×baens
×bean
×beanes

評価

0

Capsule.javaのpackage宣言はどうなってますか。

評価

0

>>スコットタイガーさん
名前は大丈夫です。
>>mioさん
「package beans;」と宣言しています。

評価

0

うーん、あとはCLASS_PATHの設定くらいしか思いつかないけど・・・
どんな設定をされてます?

評価

0

定数の癖でアンダースコア入れてもうた・・・

×CLASS_PATH
○CLASSPATH

評価

0

classpathの設定は下記の様にしています。
C:\Program Files\Apache Tomcat 4.0\common\lib\servlet.jar
まずいですかね・・・?

それとWEB-INFのフォルダの中にはclassesというフォルダの他に
web.xmlというファイルがあるのですが、コレをいじる必要は
あるのでしょうか?自分はなんのためにあるのかわらかないので(汗)

評価

0

CLASSPATHに 実行したいクラスのあるパスを設定してみてください。

自作したクラスをIMPORTしたい
 http://www.hyuki.com/jq/jqdig0056_package.html

それで解決するかもです。

web.xmlはサーブレットのマッピングなどに使用します。

アドレスにて
 http://localhost:8080/test
などとしたとき

    <servlet>
        <servlet-name>test</servlet-name>
        <servlet-class>sample.Test</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>test</servlet-name>
        <url-pattern>/test</url-pattern>
    </servlet-mapping>

これで /test は sampleパッケージのTest.javaを呼ぶということです。

評価

0

classpathやweb.xmlについてはネット上に腐るほど情報があるので、そういうところを自分で読むことをお勧めします。

評価

0

うーん、確かに・・・その辺はわたしが説明するより詳しいサイトは大量にありますね。わたしが下手に稚拙な文章で説明したほうがかえってわかりにくいかも(汗

classpathやweb.xmlは今後もJAVAをやるならしっかり学習しておくことをお勧めします。

評価

0

むむむ…
下記のようにデフォルトのままではマズいのでしょうか?

<?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-mapping>
   <servlet-name>invoker</servlet-name>
   <url-pattern>/servlet/*</url-pattern>
  </servlet-mapping>
</web-app>

評価

0

こちらのサイトにもweb.xmlについては書いてあります。
http://www.javaroad.jp/opensource/js_tomcat2.htm

クラスパスについても
http://www.javaroad.jp/java_basic2.htm

これを読んでわからない場合は、さらに別のサイトをGoogleなどで探して、自身が理解できるところを見つけましょう。
この二つはおろそかにすると今後のJAVAプログラミングに影響がでる・・・・・かも(笑
がんばってください。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。