【发布时间】:2012-12-30 06:08:40
【问题描述】:
在我的 $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配置的图片:
【问题讨论】:
-
我认为您的方法没有太大的不同。在第一种情况下,您的新用户必须对 Tomcat 进行特殊配置,并且他拥有所需的信息。在第二种情况下,他必须了解有关 IntelliJ 特殊配置的信息。在这两种情况下,如果他不这样做,他都会收到相同的错误消息。如果您不需要重用它,我会将静态内容放入您的 web 应用程序中。
-
静态内容是在应用运行时生成的。我想这不是静态的,它是“静态的”。另外,我对其进行了设置,以便有一个指向 server.xml 的属性文件。如果该属性或道具文件丢失,它会给出一个很好的错误,说明它们需要存在。一旦它存在,它就会扫描你指向它的 server.xml,以确保你的设置正确。 Intellij 搞砸了,因为它不使用 server.xml。如何让应用出错来解释如何设置?
-
我的意思是,“Intellij 搞砸了,因为它使用自己的 server.xml 并且配置它与非 Intellij 设置不同”
-
您可以选择在运行配置中覆盖
CATALINA_BASE并使用默认配置,您应该配置为使用工件输出位置作为部署源或更改工件输出以将目录转到@ 987654330@. -
在stackoverflow.com/a/7702077/104891 和this screenshot 上查看我对
CATALINA_BASE覆盖的回答。
标签: java tomcat intellij-idea