web-dev-qa-db-ja.com

EclipseからWebアプリケーションを「サーバーで実行」できません

ほとんどの場合、EclipseからWebAppプロジェクトを実行すると、正しく実行されます。しかし、誤ってサーバーを停止した場合、「サーバー」ビューから「停止」サーバーの代わりに「コンソール」ビューでそれを強制終了します。きれいなプロジェクトを実行しているときにこれを取得します

Java.lang.NullPointerException
at org.Eclipse.wst.common.componentcore.internal.util.VirtualReferenceUtilities.getDefaultProjectArchiveName(VirtualReferenceUtilities.Java:81)
at org.Eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getJavaClasspathReferences(J2EEModuleVirtualComponent.Java:332)
at org.Eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getNonManifestRefs(J2EEModuleVirtualComponent.Java:236)
at org.Eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getReferences(J2EEModuleVirtualComponent.Java:160)
at org.Eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getReferences(J2EEModuleVirtualComponent.Java:208)
at org.Eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getReferences(J2EEModuleVirtualComponent.Java:201)
at org.Eclipse.jst.common.internal.modulecore.SingleRootUtil.hasConsumableReferences(SingleRootUtil.Java:217)
at org.Eclipse.jst.common.internal.modulecore.SingleRootUtil.validateSingleRoot(SingleRootUtil.Java:165)
at org.Eclipse.jst.common.internal.modulecore.SingleRootUtil.isSingleRoot(SingleRootUtil.Java:93)
at org.Eclipse.jst.common.internal.modulecore.SingleRootExportParticipant.canOptimize(SingleRootExportParticipant.Java:84)
at org.Eclipse.wst.common.componentcore.internal.flat.FlatVirtualComponent.canOptimize(FlatVirtualComponent.Java:136)
at org.Eclipse.wst.common.componentcore.internal.flat.FlatVirtualComponent.cacheResources(FlatVirtualComponent.Java:118)
at org.Eclipse.wst.common.componentcore.internal.flat.FlatVirtualComponent.fetchResources(FlatVirtualComponent.Java:101)
at org.Eclipse.wst.web.internal.deployables.FlatComponentDeployable.members(FlatComponentDeployable.Java:147)
at org.Eclipse.wst.server.core.internal.ModulePublishInfo.hasDelta(ModulePublishInfo.Java:418)
at org.Eclipse.wst.server.core.internal.ServerPublishInfo.hasDelta(ServerPublishInfo.Java:443)
at org.Eclipse.wst.server.core.internal.Server.hasPublishedResourceDelta(Server.Java:1539)
at org.Eclipse.wst.server.core.internal.Server$ResourceChangeJob$1.visit(Server.Java:214)
at org.Eclipse.wst.server.core.internal.Server.visitModule(Server.Java:2929)
at org.Eclipse.wst.server.core.internal.Server.visit(Server.Java:2913)
at org.Eclipse.wst.server.core.internal.Server$ResourceChangeJob.run(Server.Java:225)
at org.Eclipse.core.internal.jobs.Worker.run(Worker.Java:54)

そして、起動中に私はこれを取得します

SEVERE: Error starting static Resources
Java.lang.IllegalArgumentException: Document base D:\workspace\.metadata\.plugins\org.Eclipse.wst.server.core\tmp0\wtpwebapps\Webapp does not exist or is not a readable directory
    at org.Apache.naming.resources.FileDirContext.setDocBase(FileDirContext.Java:142)
    at org.Apache.catalina.core.StandardContext.resourcesStart(StandardContext.Java:4319)
    at org.Apache.catalina.core.StandardContext.start(StandardContext.Java:4488)
    at org.Apache.catalina.core.ContainerBase.start(ContainerBase.Java:1053)
    at org.Apache.catalina.core.StandardHost.start(StandardHost.Java:840)
    at org.Apache.catalina.core.ContainerBase.start(ContainerBase.Java:1053)
    at org.Apache.catalina.core.StandardEngine.start(StandardEngine.Java:463)

これからの回復を手伝ってください。

27
Ram

このwebappの実行方法の使用を停止しました。私が使う mvn Tomcat:run代わりに。はるかに簡単です。デバッグ方法はわかりませんが。

0
Ram

私はそれを機能させるのに苦労しましたが、「Alexander Pogrebnyak」のおかげで( WTP(Eclipse)Tomcatサーバーでのwarファイルの展開を参照してください )Eclipse Webを作成することができましたプロジェクトはm2eを介してMavenと連携します。

始める前に、私は非常に疑わしい男だと言わなければならないので、常に「Eclipse> Project> Clean ...」メニューを使用してすべてのプロジェクトをクリーニングすることから始めます(「すぐにビルドを開始する」オプションをオンにしません)。また、「Eclipse> Project> Build Automatically」オプションがチェックされていません。

ところで、私はあなたがあなたのm2eプラグインをすでにインストールしている、または私が述べようとしていることは意味がないと思う...

さあ、始めましょう:

最初に、さようならサーバー構成:

1)以前のサーバー構成にプロジェクトがある場合は、それを削除します(サーバーを右クリックして[追加と削除]オプションを選択します)

2)サーバーの作業ディレクトリをクリーンアップします(サーバーを右クリックして[Tomcatサーバーの作業ディレクトリ]を選択します)

3)コンパイルされた「残り物」をクリーンアップします(サーバーを右クリックして「クリーンアップ」を選択します)

4)[サーバー]タブからサーバー構成を削除します

5)「サーバー」プロジェクト/フォルダーを完全に削除します(「プロジェクトエクスプローラー」タブに表示されます)

6)ボーナス:サーバーランタイム環境も削除します(「Eclipse>ウィンドウ>設定>サーバー>ランタイム環境」)

第二に、「Maven clean」(Webプロジェクトに「Maven nature」がある場合):

1)Webプロジェクトを右クリックします

2)「ポップアップメニュー>実行> Maven clean」

これにより、ターゲットフォルダーが消去されます。

第三に、Instal m2e WTP統合(ええ!「デフォルト」として提供されるわけではありません。それを理解するのに丸一日):

1)Mavenの「ディスカバリー」オプションを開きます(Eclipse> Windows> Preferences> Maven> Discovery)

2)「カタログを開く」ボタンを押します(「m2eマーケットプレイス」ウィンドウが表示されます)

3)「WTP Integration」オプションが見つかるまで下にスクロールし、「チェック」してください!

4)[完了]を押します

5)「プラグイン画面のような」が表示されます。 「次へ」、「次へ」、「同意する」、何とか、何とか、何とか...

4番目に、Eclipseを終了してからもう一度実行します:

1)Eclipseの再スターティングを求められない場合(信じられないでしょう)、自分で再起動してください!

5番目、Mavenの再統合:

1)Mavenの性質をプロジェクトに追加します(Webプロジェクトを右クリックし、[ポップアップメニュー>構成> Mavenプロジェクトに変換])

2)Mavenの設定を更新します(ええ、ええ、疑わしいです、私は知っています)。 Webプロジェクトをもう一度右クリックし、アイコンに「M」が表示されます(「ポップアップメニュー> Maven>プロジェクトの更新」)

3)Mavenインストールを実行します(Webプロジェクトを右クリックし、[ポップアップメニュー>実行> Mavenインストール])

4)プロジェクトをビルドします(「Eclipse> Project> Build All」)

第六に、すべてを機能させる:

1)Webアプリケーションをデプロイして実行します(Webプロジェクトを右クリックして、[ポップアップメニュー>実行>サーバーで実行])

2)別のサーバー構成を作成するように求められます。 「サーバー」プロジェクト/フォルダーが再度作成されますが、それはそのままです。

それでおしまい!!!サーバーを実行すると動作しませんでしたが、今回は(理由はわかりませんが) "Log4J"ライブラリが見つかりませんでした。 1つの「プロジェクトクリーン」+「mavenクリーン」および1つの「mavenインストール」+「プロジェクトビルド」の後、サーブレットクラスが見つからなかったことを示す別のメッセージが表示されます。もう一度、「プロジェクトクリーン」+「mavenクリーン」と「mavenインストール」+「プロジェクトビルド」と「出来上がり」を実行しました!!!それはうまくいきました(だから私はとても疑わしいです)。

私はこの新しいJuno + m2eダブルで心配し始めていました... IndigoやGanymedeでこの種の問題は一度もありませんでした...しかし、Eclipseを再び信頼できると思います(できますか?)

39
Alejo Ceballos

これらのクレイジーな宇宙の回避策をしないでください!!

これはうまくいきます:

「.project」ファイルに(非表示の)次の行を追加します。

 <natures>
    <nature>org.Eclipse.jem.workbench.JavaEMFNature</nature>
    <nature>org.Eclipse.wst.common.modulecore.ModuleCoreNature</nature>
    <nature>org.Eclipse.jdt.core.javanature</nature>
    <nature>org.Eclipse.m2e.core.maven2Nature</nature>
    <nature>org.Eclipse.wst.common.project.facet.core.nature</nature>
    <nature>org.Eclipse.wst.jsdt.core.jsNature</nature>
  </natures>

楽しい !

どうして?その存在しないディレクトリをチェックすると、まあ、その"../.metadata/blah/blah/tmp0/wtpwebapps/YOURPROJECT/"は空です。次に、ビルドはWARを作成しません... !!! mavenプラグインはHE HE TO TO!を理解していないため

これは、異なる展開プロジェクトと非展開プロジェクトの両方からの2つの.projectファイルを比較した後に見つかりました...

助けて欲しい!

7
user1995400

まったく同じ問題と例外がありますが、POMのパッケージタイプを「war」のようなwarに指定し、プロジェクトを右クリックして「Maven> Update Project Configuration」を選択し、そのWebモジュールを再デプロイするだけで問題を解決しましたTomcatサーバーへ、それだけです!

3
Bob Yang

「問題フォルダー」.metadata.plugins\org.Eclipse.wst.server.core \を削除しましたtmp0\そしてそれは今動作します:)

問題が発生する前に別のjar依存関係が機能していたため、この問題に非常に困惑していました。私はすでにm2e統合を備えたEclipse Lunaを使用していますが、上記のソリューションはどれも役に立ちませんでした。

この問題は、新しいjar依存関係をMavenの戦争プロジェクトに追加したときに始まりましたが、それがpomでコメントアウトされた場合でもうまくいきました。幸いなことに、私は両方のプロジェクトを比較することができ、最終的にこの問題は新しいjarプロジェクトであるユーティリティモジュールに欠けているプロジェクトファセットに関連していました。

  1. プロジェクトの右ボタン:Project Facets
  2. 「ユーティリティモジュール」をチェックして保存します
  3. Tomcatからアプリケーションを削除して、再度公開します。
1
Luis Diaz

私はこの問題に苦しんだが、原因は異なっていた。 wrong server name([Project Name] != [Server Name])から問題が発生しました。 recreate Serverで理解できると思った。

この問題は、以下の手順に従って解決できます。

  1. サーバーの削除:[Severs]を右クリックして、サーバーを削除します。
  2. サーバーの削除:[Project Explorer]を右クリックして、作成したサーバーを削除します。
  3. プロジェクトのクリーン:menu[Project -> Clean]
  4. サーバーの作成:[Severs]および新しいサーバーを右クリックします。
  5. Server.xmlの編集:Webサーバーのserver.xmlを編集します。
  6. サーバーの追加:[Severs]を右クリックしてサーバーを削除します。
1
Halu Kim

Maven->プロジェクト構成を更新し、Eclipseからクリーン/ビルドするだけです。プロジェクトがロードされます。

1
arviarya

すべての運を試してみました。 Eclipseに1つのプロジェクトがありました。 Eclipseをシャットダウンし、Eclipseディレクトリの名前を変更し、再度解凍し、新しいEclipseで新たに起動します。動いた。

いいえ、効率的ではありません。

0
Mustafa

私の場合、(作業中のプロジェクトから)コピーするだけで十分でした:

  1. 。設定
  2. .classpath
  3. .projects
0
SkorpEN

同じ問題が発生しましたが、サーバーのクリーニングと再作成は役に立ちません。しかし、別のプロジェクトを展開すると、正常に開始できました。よく比較した結果、.projectファイルに違いが見つかりました。そのため、作業中のプロジェクトの.projectファイルの内容を問題のあるプロジェクトにコピーし、サーバーに追加して戻すと機能します。動作する.projectファイルの内容は次のとおりです。それに応じてプロジェクトの名前を変更する必要があることに注意してください。

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>Project Name</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
    <buildCommand>
        <name>org.Eclipse.wst.jsdt.core.javascriptValidator</name>
        <arguments>
        </arguments>
    </buildCommand>
    <buildCommand>
        <name>org.Eclipse.jdt.core.javabuilder</name>
        <arguments>
        </arguments>
    </buildCommand>
    <buildCommand>
        <name>org.Eclipse.wst.common.project.facet.core.builder</name>
        <arguments>
        </arguments>
    </buildCommand>
    <buildCommand>
        <name>org.Eclipse.wst.validation.validationbuilder</name>
        <arguments>
        </arguments>
    </buildCommand>
</buildSpec>
<natures>
    <nature>org.Eclipse.jem.workbench.JavaEMFNature</nature>
    <nature>org.Eclipse.wst.common.modulecore.ModuleCoreNature</nature>
    <nature>org.Eclipse.wst.common.project.facet.core.nature</nature>
    <nature>org.Eclipse.jdt.core.javanature</nature>
    <nature>org.Eclipse.wst.jsdt.core.jsNature</nature>
</natures>
0
gkl

この問題は、ローカルプロジェクトがコードリポジトリと同期していないことが原因である可能性があります。プロジェクトを更新/同期することをお勧めします。

0
Marcin Wasiluk

私が従い、100%動作するステップ:

  1. サーバーを右クリックして、サーバーとサーバーの作業ディレクトリをクリーニングします
  2. プロジェクトエクスプローラーウィンドウからサーバーフォルダーを削除する
  3. ランタイム環境からサーバーを削除します。つまり、Eclipse-> Window-> Preferences-> Server-> Runtime Environmentsからです。
  4. Eclipseをシャットダウンして再起動します
  5. サーバーでファイルを再度実行し、Apacheサーバーを再構成します
  6. 問題は解決しました
0
Sahil
Check this version:

<web-app version="**2.5**" 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_**2_5**.xsd" metadata-complete="true">

and 

org.Eclipse.wst.common.project.facet.core.xml

<installed facet="jst.web" version="**2.5**"/>

It can be incompatible with the chosen server. In my case when I tried to upgrade 3.0 Tomcat 6.0 stopped working so I had to revert back to 2.5


so upgrade your server to a highter version or downgrade the web.xml version and run maven --> update project and try again
0
Cynthia Elliot

Tomcat doc Document base xyzが存在しないか、読み取り可能なディレクトリではないことを確認します。

ドキュメントベースが存在しないか、読み取り可能なディレクトリではありませんwarパラメータで指定されたURLは、Webアプリケーションの「アンパック」バージョンまたはWebアプリケーションアーカイブ(WAR)ファイルの絶対URLを含むこのサーバー上のディレクトリを識別する必要がありますこのアプリケーションが含まれています。 warパラメーターで指定された値を修正します。

プロジェクトのクリーンが完了した後、手動で「クリーン...」を実行し、次に「サーバー」ビューのTomcatのコンテキストメニューから「公開」を実行できますか?

0
padis