首页 文章

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

提问于
浏览
13

在我的$ 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配置的图片:

4 回答

  • 23

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

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

    我最后编辑 projects/.idea/workspace.xml ,这是我安装IntelliJ的旁边

  • 0

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

  • 4

    在“启动/连接”选项卡中,按照“传递环境变量”部分中的说明添加数据 . 重启就是这样 .

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

    我需要在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访问Root域中的资源:

    http://localhost:8080/crossdomain.xml
    

相关问题