4

Java サーブレットがどのように機能するかを理解しようとしており、IDE として netbeans 7.1.1 を使用しています。これは、Windows 7 ホスト OS で実行されている Ubuntu VM である私の開発マシンでホストされています。

Netbeans ウィザードを使用して単純なアプリをセットアップしましたが、URL にアクセスするとhttp://localhost:8080/hssdatabase/次のエラー メッセージが表示されるので、理解できないことがあるはずです:-

javax.servlet.ServletException: PWC1397: ラッパーがサーブレット クラス hss.index またはそれが依存するクラスを見つけることができません

ここに私のプロジェクトフォルダツリーがあります:-

Netbeans プロジェクト

これが私のweb.xmlです:-

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <servlet>
        <servlet-name>index</servlet-name>
        <servlet-class>hss.index</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>index</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
</web-app>

私も試しました:-

<url-pattern>/index</url-pattern>

に行きますがhttp://localhost:8080/hssdatabase/index、それは同じ結果でした。

アプリをデプロイするために、新しいプロジェクト ウィザードを使用して基本的なプロジェクトをセットアップし、生成された jsp を削除しました。次に、タグ間の web.xml 内のすべてを削除し、新しいサーブレット ウィザードを使用してサーブレットを作成し、web.xml に入力しました。ここにたどり着くまでの手順を調べるよりも、なぜこれがうまくいかないのかを理解することに興味があります。私は web.xml を理解しようとしていますが、現時点ではサーブレットとの関係です。間違っているのは xmlns 宣言でしょうか?

そして、私の index.java は、netbeans によって生成された標準的なデフォルトのサーブレットにすぎないので、ここに投稿する価値はないと思います。

私の質問は次のとおりです。web.xml に欠落または誤りがありますか?

私はそれについて見つけることができるすべてを読みましたが、それについて何も悪いことは見当たりません.

4

2 に答える 2

1

このメッセージは、hss/index.java ファイルがコンパイルされていないか、ファイルが依存しているファイルの 1 つがクラスパスにないことを示しています。'Run' または 'Deploy' アクションの実行に関連する ant 出力を確認することをお勧めします。出力は次のようになります。

init:
deps-module-jar:
deps-ear-jar:
deps-jar:
Created dir: /Users/vkraemer/NetBeansProjects/WebApplication37/build/web/WEB-INF/classes
Created dir: /Users/vkraemer/NetBeansProjects/WebApplication37/build/web/META-INF
Copying 1 file to /Users/vkraemer/NetBeansProjects/WebApplication37/build/web/META-INF
Copying 2 files to /Users/vkraemer/NetBeansProjects/WebApplication37/build/web
library-inclusion-in-archive:
library-inclusion-in-manifest:
Created dir: /Users/vkraemer/NetBeansProjects/WebApplication37/build/empty
Created dir: /Users/vkraemer/NetBeansProjects/WebApplication37/build/generated-sources/ap-source-output
compile:
compile-jsps:
In-place deployment at /Users/vkraemer/NetBeansProjects/WebApplication37/build/web
Initializing...
run-deploy:
Browsing: http://localhost:8080/WebApplication37
run-display-browser:
run:
BUILD SUCCESSFUL (total time: 1 second)

index.class ファイルが $projectroot/build/web/WEB-INF/classes/hss ディレクトリにあることも確認する必要があります。これを確認する最善の方法は、ファイル エクスプローラーを使用することです。

于 2012-05-02T21:56:26.120 に答える
-1

すべてのインポートの前に、index.java でパッケージを宣言していることを確認してください。

package Interfaz;

そうしないと、web.xml に問題がなくても、そのパッケージの下でそのサーブレットを見つけることができません。

于 2012-09-03T08:03:03.243 に答える