在我的$ TOMCAT_HOME / conf / server.xml中,我把它放在底部附近:
...
<Context path="/staticdir" docBase="/filesystem/path/to/static/dir"/>
</Host>
</Engine>
</Service>
</Server>
我这样做是因为我的文件系统上有文件,当你转到localhost时我希望tomcat提供服务: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配置图片:
答案 0 :(得分:27)
默认情况下,IntelliJ IDEA会修改CATALINA_BASE
环境,以便Tomcat使用调整后的配置文件直接从工件输出位置部署应用程序,但是可以override this behavior手动配置所有内容(通过更改工件)输出进入webapps
或通过以与IDEA相同的方式更改服务器配置,以便从标准工件输出进行部署。
答案 1 :(得分:6)
我需要在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"
现在我可以访问Root域中的资源,例如crossdomain.xml:
http://localhost:8080/crossdomain.xml
答案 2 :(得分:2)
在“启动/连接”选项卡中,在“传递环境变量”部分中添加如下所述的数据。重启,就是这样。
os.urandom(24)
答案 3 :(得分:0)
我复制了服务器,发现我的日志文件存放在错误的位置。
所以对于#34; Tomcat prod&#34;它实际上是使用catalina.base=".../preprod/..."
我最终编辑了projects/.idea/workspace.xml
,它位于我安装IntelliJ