8

Eclipse(helios)+Glassfishv3で単純な「helloworld」サーブレットを作成しました。GlassfishのプラグインをEclipseに使用しています。WEB-INF/フォルダーにはweb.xmlがなく、sun-web.xmlがあるようです。Glassfishを使用するのはこれが初めてですが、web.xmlがないことに少し驚いていました。そのため、いくつかの問題があります。

  1. サーブレットのURLマッピングはどこで確認できますか?Eclipseで新しいサーブレットを作成すると、URLマッピングを要求されますが、設定を微調整できる.xmlファイルのどこにもそれを見つけることができません。
  2. web.xmlがない場合、最初から作成するとエラーが発生しやすくなります。何を指示してるんですか?サンプルのためにグーグルと遊んでみませんか?自動作成するべきではありませんか?
  3. 誰かがこれに遭遇しましたか?web.xmlとsun-web.xmlの違いを調べてみましたが、結果はまったくわかりませんでした。構成の目的で別のxmlを学習したくはありませんが、それはGlassfish固有のものです。

特に開発/テスト中にサーブレットコンテキストやマッピングなどを構成する必要がありますが、web.xmlがまったくないために困惑しています。

4

5 に答える 5

12

Eclipseでは、Java EE6用の動的Webプロジェクトを作成するときにweb.xmlファイルを作成しないようにすることができます。これは、Java EE 6仕様(一般)およびサーブレット3.0仕様(特に)がデプロイメント記述子を強調しないようにするためです。

注釈を使用して、web.xmlファイルに含まれていたすべてのデータを提供できます。サーブレット3.0アノテーションのJavadocはかなり鈍感です。jcp.orgサイトのサーブレット3.0仕様を読んで、もう少し説明文を入手する必要があります。

サーブレット3.0サーブレットのURLマッピングを変更するには、最初に見る場所はサーブレットのソースコードです。urlPatterns要素の値を探します(そして変更します)。

サーブレット3.0に基づいてWebアプリを作成しようとしている場合は、web.xmlファイルを作成しないようにしてください。

sun-web.xml / glassfish-web.xmlファイルは、GlassFishコンテナにデプロイするためのwarファイルの記述を「終了」するために使用されます。

WebServletのようなアノテーションに関するもう1つの注意...アノテーションされたクラスはクラス階層に統合されないため、@WebServletの正しい使用法は次のようになります。

@WebServlet(
    name = "MyServlet", 
    urlPatterns = {"/path_to_servlet"}
)
public class MyServlet extends HttpServlet {}
于 2011-02-24T07:30:34.250 に答える
10

ファイルが必要な場合はweb.xml、プロジェクトエクスプローラービューでデプロイメント記述子をコンテキストクリックすると、[デプロイメント記述子スタブの生成]オプションが表示されます。web.xmlこれにより、display-nameandwelcome-file-list要素を使用してが作成されます。

于 2012-05-25T15:28:10.163 に答える
4

「新規>動的Webプロジェクト」を作成するときに「完了」をクリックするのは悪い習慣のようです-「次へ」をクリックし続け、「web.xmlデプロイメント記述子の生成」を選択した最後のウィンドウペインに移動する必要があります-デフォルトではチェックされていないようです。

それは、私がWebアプリの作成に少し錆びていることを示しています。そして、ここで私はそれがグラスフィッシュ特有の問題だと思いました。

于 2011-02-24T03:25:59.147 に答える
3

Glassfish3.xは完全に認定されたJavaEE6サーバーであるため、サーブレット3.0をサポートします。サーブレット3.0以降では、アノテーションを使用してweb.xml設定を指定できます。

例えば

@WebServlet(
    name = "MyServlet", 
    urlPatterns = {"/path_to_servlet"}
)
public class MyServlet {}
于 2011-02-24T03:22:18.993 に答える
0

TMNの発言に加えて、何らかの理由でSVNの更新を実行するまで、プロジェクトエクスプローラーにDeploymentDescriptorが表示されないことに気付きました。その問題がある場合は、コードを更新してみてください。私はすでにHEADリビジョンを使用していましたが、何らかの理由でアップデートでそのビューが表示されました。

于 2012-09-25T14:17:15.633 に答える