【发布时间】:2012-02-14 11:12:14
【问题描述】:
我刚刚切换到 Intellij Idea (11),我遇到了可能很简单的问题,我在 Intellij IDE 中找不到解决方案。我有一个 Web 应用程序,其中包含一些标有 javax.ws.rs 注释的类,例如。 @Path("/members") 等和我的 web.xml 文件配置为处理 REST 调用。
应用程序是使用 Maven 构建的,当我从命令行或通过 Intellij IDE 打包应用程序并手动将 .war 文件复制到 tomcat webapps 目录中时,一切正常,例如。我可以从浏览器访问基于GET 的服务。
如果我通过 Intellij IDE 中配置的 tomcat 部署应用程序,应用程序可以工作,但没有 REST 部分,因此我无法执行任何基于 REST 的调用(最终都会出现 404 错误)。我在日志中看不到任何有关部署休息服务类的信息,就像我在手动部署期间所做的那样:
INFO: Adding scanned resource: com.softberries.klerk.rest.MemberResourceRESTService
所以它绝对是我错过的一个 IDE 配置选项,它阻止 tomcat 扫描类以查找此注释。
问题是我应该如何在 IDE 中配置我的 Tomcat,使其工作方式与手动启动相同。
【问题讨论】:
-
检查工件配置了吗?它会产生与 Maven 相同的战争吗?
-
这就是重点,如果我通过 IDE 或从命令行使用 'mvn' 打包它并手动部署它,所有工作都按预期工作,但如果我使用 IDE 部署没有休息服务。我可以在 IDE 控制台中看到它部署了自己的“/conf/Catalina/localhost/ROOT.xml”文件,但找不到我可以在 Intellij idea 中配置它以不修改战争或将其他文件发布到 tomcat 的位置跨度>
-
默认情况下,IDEA 确实通过提供自己的指向 war 文件的 ROOT.xml 文件而不是将战争复制到“webapps”文件夹来部署应用程序。您可以在“项目结构”对话框中更改工件配置中的“输出路径”以将战争复制到“webapps”文件夹并从 Tomcat 运行配置的“部署”选项卡中删除工件以抑制默认行为。
-
我根本找不到 IntelliJ 将该应用程序部署到的位置。控制台说应用程序已部署,但它在哪里?我要去哪个网址?
标签: rest intellij-idea tomcat7