web-dev-qa-db-ja.com

Eclipseで動的Webプロジェクトのコンテキストレートを変更する方法

私はEclipseで動的Webプロジェクトを開発しました。今私は私のブラウザを通して次のURLを使ってそれにアクセスすることができます:

http://localhost:8080/MyDynamicWebApp

アクセスURLをに変更したいのですが。

http://localhost:8080/app

コンテキストルートをプロジェクトの[プロパティ]、[Webプロジェクト設定]、[コンテキストルート]から変更しました。

しかし、それは機能していません。 Webアプリには以前と同じアクセスURLがあります。 Tomcatにアプリケーションを再デプロイし、Tomcatを再起動して、実行すべきすべてのことを実行しましたが、アクセスURLは以前と同じです。

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

198
Yatendra Goel

私はあなたが今までに進んだと確信しています、しかし私はとにかく答えたいと思いました。

これらの回答のいくつかは回避策を示しています。実際に起こらなければならないのは、新しいURIを「アクティブにする」ためにプロジェクトをクリーンアップして再公開することです。これは、(サーバービューで)サーバーを右クリックして、「クリーン」を選択することによって行われます。次に起動します(または再起動します)。ここでの他の答えの大部分は、あなたが事実上これを達成することをすることを提案します。

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

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


これが正しいエチケットであるかどうかわからない - 私はEclipse Indigoのための正確なステップを与えるためにこの答えを編集している。

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

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

    screen shot of Eclipse project properties Web Project Settings

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

  4. 赤い四角のボックスをクリックしてサーバーを停止するか( "Stop the server"ツールチップ)、またはサーバーリストを右クリックして "Stop"を選択します。

  5. 使用したいサーバー上で、コンテキストクリックして "Clean…"を選択します。

    enter image description here

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

    Screenshot of dialog asking to update server configuration to match the changed context root

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

http://localhost:8080/app/

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

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

視覚的な追加機能を使用している場合、Vaadinツールキットのプログラマーは自分のウィジェットセットを再構築する必要があるかもしれません。

323
Russ Bateman

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

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

31
Csaba_H

EclipseからTomcatを実行している場合、実際のTomcatインストールの設定は使用されません。これは、 "Servers"プロジェクトの下に作成および保存されたTomcat構成を使用します。 Eclipseワークスペースを見れば、 "Servers"というプロジェクトが見えるはずです。その「サーバー」プロジェクトを展開すると、server.xmlに出くわすでしょう。このファイルを開いて一番下までスクロールすると、このような何かが見えるはずです -

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

ここでは、プロジェクトのコンテキストパスを他のものに変更するだけです。

お役に立てれば。

24
limc

Russ Batemanが提案した解決策を試してみました

http://localhost:8080/Myappからhttp://localhost:8080/somepath/Myapp

しかし私のlocalmachine上のserverの個々のインスタンスではなくconfigを保持することができる* .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>
17
tosha Shah

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

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

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

7
Ray Hulha

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

<build>
    <finalName><any-name></finalName>
    <plugins><provide-plugins-needed></plugins>
<build>
6
Karthik

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

私はサーバー内のコンテキストルートパスにそこのための一つのプロジェクトがあります:

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

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

6
Amar Poddar

プロジェクトがMavenの場合は、pom.xmlの「finalName」をMavenとして更新し、これは私のために機能しました。

4

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

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

そのため、"Run as> Run on server"をクリックすると正しく開きます。

2
Alan Weiss

あなたが自分のアプリケーション名を全くルートコンテキストに入れたくないのなら、Eclipseに "/"(引用符は使わず、スラッシュだけ)を入れてください - > Web Project Settings - >コンテキストルートエントリ

これでWebアプリケーションは--- http:// localhost:8080 / にデプロイされます。

もちろん、これはあなたがサーバ上で走らせようとしている他のウェブアプリケーションとの問題を引き起こすでしょう、それでそれに向かって進んでください。

私は永遠に一緒にそれをまとめるために持っていた...だからこの記事は8歳ですが、うまくいけばこれはまだ誰かに役立つでしょう!

2
arcademonkey

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を作成する必要があるかもしれません。この演習は現実の世界では意味がありますが、うまくいきます。

0
supernova

Javaプロジェクトで、.settingsフォルダーを開きます。そこに「org.Eclipse.wst.common.component」という名前のファイルがあります。タグ<wb-module deploy-name = "NEW_NAME">を変更します。

また、プロジェクトプロパティのコンテキストルートを変更したい場合があります。

0
user418836