Tomcatを使用してEclipseでWebサービスを実行している同じパスエラーのある複数のコンテキスト


130

これは、Eclipseを使用して最初のAxis2 Webサービスを作成したときに発生したエラーです。クラスを作成した後、Apache Axis2を使用してWebサービスを作成しました。Eclipseでサーバーの開始ボタンをクリックすると、エラーメッセージが表示されます。

ローカルホストでTomcat v6.0サーバーのサーバー構成を公開できませんでした。
複数のコンテキストには、「/ FirstApache」のパスがあります。

FirstApacheは、以前に作成した動的Webプロジェクトです。Webサービスウィザードの構成部分から正しいWebプロジェクトを選択しました。

どうすれば修正できますか?

回答:


276

server.xmlファイルを検索して<Context>タグを確認してください。おそらく同じパスに複数の定義があります。重複を削除すればうまくいくはずです。

ここで答えを確認してください

2番目のタグは同じ行にある可能性があるため、xmlファイル(control+ shift+ f)を自動フォーマットします<Context>が、ビューポートの外側にあり、表示されているタグからはかなり離れています。


13
server.xmlファイルは、workspace \ .metadata \ .plugins \ org.eclipse.wst.server.core \ tmp0 \ confにあります(これがEclipseのデフォルトサーバーでない場合はtmp0を変更してください)
Repoker

eclipse java eeで動的Webプロジェクトのコピーを作成し、代わりにコピーでJSPを実行しようとした後、この問題が発生しました。この問題を解決するにはどうすればよいですか?
Erran Morad 2014

他の無用な「感謝」を避けるために保護する必要があります。回答への賛成票は、感謝のコメントよりも優れています。
ドウィッツ

ありがとう、動作していますが、なぜこの重複が発生するのか混乱していますか?
Sandip S.

このソリューションは引き続き機能します。EclipseV2018-12でTomcat 8.5を使用しています
Raymund Arthur

70

STS / Eclipseで「プロジェクトエクスプローラー」または「パッケージエクスプローラー」に移動すると、「サーバー」というフォルダーがあります。それを開くと、server.xmlファイルが見つかります。一番下のこのファイル内には、次のような定義があります

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

削除する必要がある同じ定義の重複を見つける場合があります。


1
追加されたサーバーの削除を追加します。この行が自動的にもう一度追加されます
Vinayak Shedgeri

それでもアプリが起動しない場合は、コンソールの横にある[サーバー]タブに移動し、サーバー名のドロップダウン内にあるすべてのモジュールを削除します。この後プロジェクトを再実行します
Sameer Sinha

41

Eclipseで、Serversプロジェクトに移動します。使用しているTomcatバージョンのツリーを開きます。server.xmlファイルを開き、コンテキストタグを確認します。


28

プロジェクトエクスプローラーのEclipse IDEで、次のようにserver.xmlにアクセスします。

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

また、プロジェクトの参照が重複しているコンテキストタグを削除します。

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


16

プロパティ名のタグに移動しserver.xmlて検索し"Context"ます"docBase"

ここで重複する行を削除します。次に、サーバーを再起動してください。


12

EclipseのServersプロジェクトに移動し、ランタイムサーバー構成(私の場合はlocalhost-configのTomcat v7.0 Server)でserver.xmlに移動しますファイルにて<context>タグを検索します。通常、複数のコンテキストタグが見つかります、それらを削除し、適切に機能するサーバーでアプリケーションを実行します。

私の場合、重複するContextタグを見つけました:

<Context docBase="my-project" path="/my-project" reloadable="true" source="org.eclipse.jst.jee.server:my-project"/&gt;&lt;Context docBase="my-project" path="/smartphone-selfcare" reloadable="true" source="org.eclipse.jst.jee.server:my-project"/></Host>

10

Tomcatを使用するEclipseでは、このserver.xmlファイルを開いてContextタグを見つけるだけで、ここでコンテキスト名が不要なコンテキストを削除してサーバーを再起動するだけで、サーバーが再起動します。

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


5
  1. プロジェクトのプロパティで、[Webプロジェクト設定]を選択します。
  2. 「コンテキストルート」を変更します。
  3. サーバーを掃除する
  4. これでサーバーを再起動できます

ワークステーションの異なる場所で同じアプリケーションの複数のインスタンスを使用する開発者向けの優れたソリューション。Eclipse / Tomcatのすべてのインストールで、server.xmlファイルに<Context>タグが含まれているわけではないことがわかりました。
Mindsectチーム2017


3

Eclipseでサーバーを削除し、tomcatサーバーを再度追加するだけです。次に、tomcat / bin / shutdown.batファイルのtomcatをシャットダウンして、サーバーをEclipseで起動します。


2

サーバーコンソールで既存のTomcatサーバーを削除してみてください。コンソールがない場合は、[ビューの表示->サーバー]に移動し、サーバーを右クリックして削除してから、新しいサーバーを追加します。


2

Tomcat 7とEclipseを使用している場合は、Tomcatサーバーをクリックし、[モジュール]タブに移動します。そこに重複したエントリがあります。両方のエントリを削除して、アプリケーションを再デプロイします。あなたは今行ってもいいです。


2

関連する注意事項として、プロジェクトをコピーした場合、またはいずれにせよ、2つの「アクティブ」プロジェクトに同じコンテキストパスを設定している場合は、そのうちの1つのコンテキストパスを変更してから、Tomcatサーバーの設定を消去し、サーバーを再公開する必要があります。

この詳細な回答をご覧ください


1

以前私はその問題を抱えていました。Tomcatツリーを展開して問題を解決しているフォルダを削除することで解決しました。あなたの場合は/FirstApacheです。削除した後。その後、それを再実行すると、実行できるはずです。再度発生する場合は、削除してもう一度お試しください。



0

私の場合、タグの下のlocalhost-config / server.xmlにあるServers / Tomcat5.5で重複したパスが見つかりました。重複を削除することで問題は解決しました。


0

wrokspaceの.metadata / .pluginsからorg.eclipse.wst.server.coreとorg.eclipse.wst.server.uiを削除します

サーバーをEclipseから削除し、サーバーをEclipseで再構成します。


0

このエラーは、プロジェクトを過去よりもコピーし、そのプロジェクトの名前を変更すると発生します。

このような場合は、次の手順に従ってください。

ステップ-1:web.xmlファイルを編集する必要があります。以前のプロジェクトのサーブレットとサーブレットマッピングを削除します。

ステップ-2:SERVER-> server.xml->コンテキストに移動

例:-コンテキストdocBase = "JSPandServletDemo" path = "/ JSPandServletDemo" = "true" source = "org.eclipse.jst.jee.server:JSPandServletDemo" />

ここで、パス名を現在のプロジェクト名に変更するだけです。

幸運ハッピーコーディング:)


-1

STSを使用していて、サーバーがPivotalの場合サーバーをダブルクリックして、[モジュール]タブ> [このサーバーでWebモジュールを表示]に移動します。>モジュールを削除して、もう一度実行できます。


-1
 //Trying to do more than one thing to the object in the same context, 
//the solution is to work on single context objects

public class SingletonContext<TContext>
    where TContext: DbContext,new()
{
    private static TContext _context;

    private SingletonContext()
    {

    }
    public static TContext GetInstance()
    {
        if (_context == null)
        {
            _context = new TContext();
        }
        return _context;
    }

}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.