繁体   English   中英

为什么Intellij-IDEA会忽略我的tomcat / conf / server.xml Context标签?

[英]Why does Intellij-IDEA ignore my tomcat/conf/server.xml Context tag?

在我的$ TOMCAT_HOME / conf / server.xml中,我将此放在底部:

...

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

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

我这样做是因为我的文件系统上有一些文件,当您转到localhost:8080 / staticdir时,我希望雄猫提供服务

但是,当我在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配置的图片:

在此处输入图片说明

默认情况下,IntelliJ IDEA修改CATALINA_BASE环境,以便Tomcat使用调整后的配置文件直接从工件输出位置部署应用程序,但是可以覆盖此行为并手动配置所有内容(通过将工件输出更改为进入webapps或更改与IDEA一样的服务器配置,以便从标准工件输出进行部署)。

我在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

在“启动/连接”选项卡中,按照下面“传递环境变量”部分所述添加数据。 重新启动,仅此而已。

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

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

因此,对于“ Tomcat产品”,它实际上是在使用catalina.base=".../preprod/..."

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM