21

私の $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\Unnamed_Product_2"

ファイルシステムのそのディレクトリに移動して conf/server.xml ファイルを確認するとContext、そこに配置したタグがありません。intellij がこれを変更する理由と、それを防ぐ方法を教えてください。

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


回避策を見つけました。

ここに画像の説明を入力

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

これが私のTomcat構成の写真です:

ここに画像の説明を入力

4

4 に答える 4

29

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

于 2013-01-23T19:07:27.363 に答える
8

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
于 2013-10-15T14:18:09.127 に答える