java ホスト名 Intellij-IDEAがtomcat/conf/server.xmlのコンテキストタグを無視するのはなぜですか?




tomcat server.xml resource (4)

私の$ TOMCAT_HOME / conf / server.xmlでは、これを一番下のほうに置いています。

...

 <Context path="/staticdir" docBase="/filesystem/path/to/static/dir"/>                                

      </Host>
    </Engine>
  </Service>
</Server>

これは、localhost:8080 / staticdirに移動したときにtomcatにサービスを提供してもらいたいファイルシステム上のファイルがあるためです。

しかし、Intellij-IDEAでアプリケーションを起動すると、Tomcatログに次のように表示されます。

CATALINA_BASEを使用する場合: "C:\ Users \ me.IntelliJIdea11 \ system \ tomcat \無名_製品_2"

ファイルシステムのそのディレクトリに移動してconf / server.xmlファイルを見ると、そこにContextタグがありません。 intellijがこれを修正したのはなぜですか。

代わりに私の$ TOMCAT_HOME / conf / context.xmlファイルにこの変更を加えるべきだったと感じますが、そこにこの変更を加える方法の例を見つけるのに苦労しています。 誰かが私にその例を見せることができれば、私はそれを答えと考えるでしょう、私はintellijがそのファイルを修正しないことに気づくので。

回避策を見つけました。

しかし、私は本当に好きではありません。新しいユーザーが初めてアプリを実行しようとしたときに、このステップを誤って実行したことを検出する方法を想像できないためです。

これが私のTomcat設定の写真です。


Answer #1

デフォルトではIntelliJ IDEAはCATALINA_BASE環境を修正して、Tomcatがアーティファクトの出力場所から直接アプリケーションをデプロイするための調整済み設定ファイルを使用します。ただし、 この動作オーバーライドして手動ですべてを設定することができます。 IDEAが行うのと同じ方法でサーバー構成を設定し、標準の成果物出力からデプロイメントが行われるようにします。


Answer #2

[起動/接続]タブで、後述の「環境変数の受け渡し」のセクションに記載されているようにデータを追加します。 再起動してください。

Name           Value
------------   -----
CATLINA_BASE   {Tomcat Installation directory}

Answer #3

Tomcat / IntelliJではROOTコンテキストが必要だったので、Hostタグのserver.xmlに特定のContextを追加します。

<Context path="" docBase="C:\intranet\app\tomcat\webapps\ROOT\" reloadable="true" />

intelliJ 11.1.5では、[サーバ]タブパネルのチェックボックス "Tomcatインスタンスに設定されたアプリケーションをデプロイする"で、IntelliJはserver.xmlをフォルダデプロイメントにコピーします。

C:\Users\{Username}\.IntelliJIdea11\system\tomcat\Unnamed_Product_2\conf"

これで、例のcrossdomain.xmlによって、ルートドメインのリソースにアクセスできます。

http://localhost:8080/crossdomain.xml

Answer #4

サーバーをコピーしたところ、ログファイルが間違った場所に保存されていることがわかりました。

そのため、 "Tomcat prod"の場合、実際にはcatalina.base=".../preprod/..."

IntelliJをインストールした場所の隣にあるprojects/.idea/workspace.xmlを編集しprojects/.idea/workspace.xml







intellij-idea