2016-04-28 14 views
1

EclipseMavenを使用してJava Webアプリケーションを構築しています。アプリはjbosswildfly)またはtomcatのいずれかで実行されます。 Webアプリケーションのコンテキストパスを設定したいと思います。Webアプリケーションのコンテキストパスを設定する

デフォルトでは、eclipseはコンテキスト・パスを(project -> properties -> web project settingsに表示されている)Eclipseプロジェクトの名前と等しくなるように設定します。しかし、そこに表示されているコンテキストパスにかかわらず、私がwarファイルをデプロイすると、warファイルの名前がeclipseの設定ではなくコンテキストパスとして使用されます。私は希望

は、次の3つの状況でコンテキストパスを設定する方法を知っている:

  • 私は日食に埋め込まれたサーバー(Tomcatなどやwildfly)を使用して、日食で私のWebプロジェクトを実行します。この場合、プロジェクト名を取っているようです。
  • 私はwar(mavenを使って)をビルドし、Eclipseの組み込みサーバーを使ってこのwarファイルを実行します。それは戦争ファイルの名前を取っているようだ。
  • 私は戦争を構築し、外部サーブレットコンテナ(eclipseの外)に展開します。また、戦争の名前をコンテキストパスと見なしているようです。

プラットフォーム/ eclipse /サーブレットコンテナに依存するコンテキストパスが選択されていますか?誰も各容器の標準的な動作を文書化していますか?どのようにして戦争がビルド/デプロイされているかにかかわらず、すべてのプラットフォームとサーブレットコンテナのコンテキストパスを設定/設定する方法はありますか?もっと重要なことですから、戦争名はコンテキストパスと同じではありませんか?

+0

ここで見つかる少なくともいくつかの回答:http://stackoverflow.com/a/664089/2365727 – michaldo

+0

@michaldo私は情報が少し古いですが(2009)、少なくともそれができないというコンセプトは残念ですWARファイルの代わりにEARファイルを使用せずにサーブレットコンテナにとらわれない方法で実行すると便利です – user1884155

答えて

1

それが使用されているアプリケーションサーバーとは独立したように、これまでのWARのコンテキスト・ルートを設定する唯一の方法は次のとおりです。それEARの一部にするとapplication.xmlを経由して、コンテキスト・ルートを供給:

<?xml version="1.0" encoding="UTF-8"?> 
<application 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/application_6.xsd" version="6"> 
    <display-name>EAR_NAME</display-name> 
    <module id="Module_***********"> 
     <web> 
      <web-uri>YourWeb.war</web-uri> 
      <context-root>YourContextRoot</context-root> 
     </web> 
    </module> 
</application> 

WARのcontext-rootは、jboss-web.xml,glassfish-web.xmlなどのサーバー固有のWebデプロイメント記述子のいずれかの一部でなければなりません。 Hereは公式の例です。

JAVA EE 7の場合と似たような例は見つかりませんでしたが、実際はこれが変更されているとは思われません。 JEE7は主にHTML5とJSONの機能を追加していました。

関連する問題