210

Eclipseで動的Webプロジェクトを開発しました。次のURLを使用して、ブラウザーからアプリにアクセスできます。

http://localhost:8080/MyDynamicWebApp

アクセスURLを次のように変更したい:

http://localhost:8080/app

そのために、プロジェクト「プロパティ|Webプロジェクト設定|コンテキストルート」からコンテキストルートを変更しました。ただし、Webアプリには引き続き同じアクセスURLがあります。アプリケーションをTomcatに再デプロイし、Tomcatを再起動しましたが、アクセスURLは以前と同じです。

server.xmlファイルに添付されているファイルがないことがわかりましたWAR。ファイルが添付されていないserver.xml場合、TomcatはWebアプリのコンテキストルートがどのように判断し、/MyDynamicWebAppこのコンテキストルートURLを介してアプリケーションにアクセスできるようにしますか?

4

14 に答える 14

341

もう先に進んだと思いますが、とにかく答えると思いました。

これらの回答のいくつかは回避策を提供します。実際に発生しなければならないのは、プロジェクトをクリーンアップして再公開し、新しいURIを「アクティブ化」することです。これを行うには、サーバーを右クリックして([サーバー]ビューで)、[クリーン]を選択します。次に、開始(または再起動)します。ここでの他の答えのほとんどは、実際にこれを達成することを行うことを示唆しています。

変更されるファイルworkspace/.metadata/.plugins/org.eclipse.wst.server.core/publish/publish.datは、ワークスペースに複数のサーバーがある場合を除きます。複数のサーバーがある場合はpublishN.dat、同じパス上にあります。

これが誰かに役立つことを願っています。


これが適切なエチケットであるかどうかわからない— Eclipse Indigoの正確な手順を示すために、この回答を編集しています。

  1. プロジェクトのプロパティで、 [Webプロジェクト設定]を選択します。

  2. コンテキストルートアプリに変更します。

    EclipseプロジェクトプロパティのスクリーンショットWebプロジェクト設定

  3. [ウィンドウ]>[ビューの表示]>[サーバー]を選択します。

  4. 赤い四角のボックス([サーバーの停止]ツールチップ)をクリックするか、サーバーリストをコンテキストクリックして[停止]を選択して、サーバーを停止します。

  5. 使用するサーバーで、コンテキストクリックして[クリーン…]を選択します。

    ここに画像の説明を入力してください

  6. この確認ダイアログボックスで[OK]をクリックします。

    変更されたコンテキストルートに一致するようにサーバー構成を更新するように求めるダイアログのスクリーンショット

これで、次のような新しい「アプリ」URLを使用してアプリを実行できます。

http://localhost:8080/app/

Eclipseの外部、本番サーバーでこれを行うのはさらに簡単です->warファイルの名前を変更します。VaadinアプリをWARファイルとしてエクスポートします([ファイル]>[エクスポート]>[Web]> [WARファイル])。WARファイルをTomcatなどのWebサーバーのサーブレットコンテナに移動します。WARファイルの名前をこの場合はapp.warに変更します。サーブレットコンテナを起動すると、Tomcatなどのほとんどがアプリを自動デプロイします。これにはwarファイルのフォルダへの展開が含まれます。この場合、appという名前のフォルダーが表示されます。あなたは行ってもいいはずです。URLをテストします。* example.com "などのドメインの場合、これは次のようになります。

http://www.example.com/app/

Vaadinツールキットプログラマーは、ビジュアルアドオンを使用している場合、ウィジェットセットを再構築する必要がある場合があります。

于 2011-11-30T23:06:51.507 に答える
33

プロジェクトプロパティのコンテキストルートを変更した後、TomcatからWebアプリケーションを削除し(サーバーのコンテキストメニューの[追加と削除...]を使用)、再デプロイしてから、アプリケーションを再追加して再デプロイする必要があります。それは私のために働いた。

打たれた場合は、別の選択肢があります。サーバービューでTomcatサーバーを選択します。そのサーバーをダブルクリックする(またはコンテキストメニューで[開く]を選択する)と、[モジュール]ページがある複数ページのエディターが表示されます。ここで、モジュールのルートコンテキスト(このページではパスと呼ばれます)を変更できます。

于 2010-03-13T07:11:41.953 に答える
24

EclipseからTomcatを実行している場合、実際のTomcatインストールの構成は使用されません。「サーバー」プロジェクトで作成および保存したTomcat構成を使用します。Eclipseワークスペースを表示すると、「サーバー」というプロジェクトが表示されます。その「サーバー」プロジェクトを展開すると、server.xmlが見つかります。このファイルを開き、一番下までスクロールすると、次のように表示されます。-

<Context docBase="abc" path="/abc" reloadable="true" source="org.eclipse.jst.jee.server:abc"/>

ここでは、プロジェクトのコンテキストパスを別のものに変更できます。

お役に立てれば。

于 2010-05-17T21:13:53.103 に答える
17

RussBatemanが提案した解決策をここの投稿で試しました

http://localhost:8080/Myapphttp://localhost:8080/somepath/Myapp

しかし、ローカルマシン上のサーバーの個々のインスタンスではなく、構成を保持できる* .warファイルが必要だったため、Didntは機能しました。

参照

そのためには、WEB-INFにjboss-web.xmlを配置する必要があります

<?xml version="1.0" encoding="UTF-8"?>
 <!--
Copyright (c) 2008 Object Computing, Inc.
All rights reserved.
-->
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 4.2//EN"
"http://www.jboss.org/j2ee/dtd/jboss-web_4_2.dtd">

  <jboss-web>
  <context-root>somepath/Myapp</context-root>
  </jboss-web>
于 2012-08-30T16:31:44.423 に答える
10

Eclipse Webモジュールの編集ダイアログでパスを何も設定しないと、URL(つまりROOT)にパスコンポーネントがなくてもプロジェクトにアクセスできるようになりました

「サーバー」ビューでTomcatを選択した場合は、F3キーを押すか、ダブルクリックして、Webモジュール編集ダイアログにアクセスできます。

いくつかのスクリーンショット:

于 2015-08-25T23:23:26.283 に答える
6

Apache tomcatは、プロジェクトコンテキストパスをserver.xmlパスに保持します。EclipseのWebプロジェクトごとに、そこから変更できるタグがあります。
サーバーに2つまたは3つのプロジェクトがデプロイされているとします。1つごとに、コンテキストパスがに格納されます。このタグは、Eclipseで作成されたサーバー内のserver.xmlファイルにあります。

サーバーのコンテキストルートパスに1つのプロジェクトがあります。

<Context docBase="Test" path="/test" reloadable="true" source="org.eclipse.jst.jee.server:Test1"/>

このパスは、Webアプリケーションのコンテキストパスを表します。このパスを変更すると、Webアプリのコンテキストパスが変更されます。

于 2011-11-08T05:56:26.000 に答える
6

私は答えがすでに受け入れられていることを知っています。ただし、Mavenを使用している人が同じことを達成したい場合に備えて、MavenビルドのfinalNameを任意の名前に設定して、Maven->プロジェクトを更新してください。

<build>
    <finalName><any-name></finalName>
    <plugins><provide-plugins-needed></plugins>
<build>
于 2014-10-15T19:53:25.333 に答える
4

プロジェクトがMavenの場合は、pom.xmlの「finalName」を変更し、プロジェクトをMavenとして更新します。これでうまくいきました。

于 2016-04-19T09:06:05.127 に答える
2

Glassfishでは、ファイルWEB-INF/glassfish-web.xmlも変更する必要があります

<glassfish-web-app>
    <context-root>/myapp</context-root>
</glassfish-web-app>

したがって、[実行]> [サーバーで実行]をクリックすると、正しく開きます。

于 2013-11-26T16:14:32.600 に答える
2

ルートコンテキストにアプリケーション名をまったく含めたくない場合は、Eclipse-> Webプロジェクト設定->に「/」(引用符なし、スラッシュのみ)を入力するだけです。コンテキストルートエントリ

これにより、Webアプリがhttp:// localhost:8080/のみにデプロイされます。

もちろん、これはサーバー上で実行しようとしている他のWebアプリで問題を引き起こすので、それに注意してください。

それをつなぎ合わせるために私を永遠に連れて行った...だからこの投稿は8歳ですが、うまくいけば、これはまだ誰かを助けるでしょう!

于 2018-11-02T16:08:15.137 に答える
0

Javaプロジェクトで、.settingsフォルダーを開きます。「org.eclipse.wst.common.component」という名前のファイルを見つけます。タグ<wb-moduledeploy-name="NEW_NAME">を変更します。

また、プロジェクトプロパティのコンテキストルートを変更することもできます

于 2011-10-28T19:30:14.053 に答える
0

Eclipseを使用してアプリケーションをデプロイする場合。このMavenプラグインを使用できます

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-eclipse-plugin</artifactId>
    <version>2.10</version>
    <configuration>
        <wtpversion>2.0</wtpversion>
        <wtpContextName>newContextroot</wtpContextName>
    </configuration>
</plugin>

次に、プロジェクトのルートフォルダーに移動し、その場所でcmdプロンプトを開きます。次のコマンドを入力します。

mvn eclipse:eclipse -Dwtpversion = 2.0

Eclipseを再起動するか、サーバービューでサーバーを削除してagianを作成し、影響を確認する必要がある場合があります。この演習は実際には意味がありますが、機能します。

于 2017-11-29T23:10:37.117 に答える
0

maven java ee 7/8エンタープライズアプリケーションを使用している場合は、EARプロジェクトのpom.xmlを編集する必要があります

<build>
    <plugins>
        ...
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ear-plugin</artifactId>
            <version>2.8</version>
            <configuration>
                <version>6</version>
                <defaultLibBundleDir>lib</defaultLibBundleDir>
                <modules>
                    <webModule>
                        <groupId>com.sample</groupId>
                        <artifactId>ProjectName-web</artifactId>
                        <contextRoot>/myproject</contextRoot>
                    </webModule>
                </modules>
            </configuration>
        </plugin>
        ...
    </plugins>
</build>
于 2020-01-15T04:30:43.893 に答える
0

代替リソースがいくつかあります...しかし、プログラムで行う方法は、サーバーからserver.xmlファイルを変更することです....。

これは、実際のプロジェクトがどのように構成されているかです....コンテキストでパスを変更します。

<Context docBase="projectName" path="/reachingPath" reloadable="true" source="org.eclipse.jst.jee.server:projectName"/></Host>
于 2021-06-16T15:41:48.217 に答える