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 回答
2

在“启动/连接”选项卡中添加如下“传递环境变量”部分中提到的数据。重新启动,就是这样。

Name           Value
------------   -----
CATLINA_BASE   {Tomcat Installation directory}
于 2017-07-29T19:19:37.933 回答
0

我复制了服务器,发现我的日志文件存储在错误的位置。

所以对于“Tomcat prod”,它实际上是在使用catalina.base=".../preprod/..."

我最终编辑projects/.idea/workspace.xml了在我安装 IntelliJ 的位置旁边

于 2016-09-06T11:24:50.613 回答