【问题标题】:IntelliJIDEA 14 cannot run Spring Project with Tomcat but with Eclipse it runs smoothlyIntelliJ IDEA 14 无法使用 Tomcat 运行 Spring Project 但使用 Eclipse 运行顺畅
【发布时间】:2015-01-05 20:38:39
【问题描述】:

我有两个 Spring 项目:

项目 B - 是后端 项目 A - 是一个使用后端的 Rest API

我正在尝试从 Eclipse 迁移到 IntelliJ,因此这两个项目是使用 Eclipse 编写的,并且在我将 A 打包到 war 文件中之后,它们在具有内部 Tomcat 的 Eclipse 中都比在“标准”Tomcat 中运行良好。

所以我遇到的问题仅在于 IntelliJ,尤其是当我在 IntelliJ 中部署项目时。

我做了什么:

1) 在 IntelliJ 中导入项目 A 并将其配置为 Spring 项目(自动检测) 2)在IntelliJ中导入项目B并将其配置为Spring项目(自动检测) 3) 在项目 A 中添加项目 B 作为模块 4)配置一个本地的Tomcat 7实例(也用Tomcat8试过) 5) 运行项目

我所看到的:没有部署错误或任何相关内容,但是如果我在 Tomcat 日志中调用随机 Rest 方法,我会看到 Spring Security 的所有安全链都在没有错误的情况下执行,但它似乎跳过了代码的执行控制器(在项目 A 中)。我还附加了一个调试器,但由于执行在进入字节码执行之前停止,我什么都看不到。

我是 IntelliJ 的新手,我确信我在导入项目时犯了一些错误,据说它们在 Eclipse 或 Tomcat 中工作得很好,但找不到在哪里......

更新 IntelliJ 在 Tomcat\webapps 中创建一个 ROOT 目录,并将所有项目文件复制到其中。显然它不仅复制了ProjectB的jar文件,还复制了相关的src/resources/xml以及原始项目中的所有内容。

UPDATE2(显然已解决) 显然这个问题只是一个路径问题。由于它部署在 ROOT 文件夹下,我可以在 URL 中跳过它。但无论如何,在我看来这是一种奇怪的行为......

谢谢

【问题讨论】:

    标签: java eclipse spring tomcat intellij-idea


    【解决方案1】:

    调试问题应该没有问题,所有主要运行时组件的源代码都可用(Spring,Tomcat等)。不幸的是,说“执行在进入字节码执行之前停止”对于不熟悉您的项目的人来说并不是很有帮助。

    如果您在 IDE 之间存在差异,则可能值得看看在以下情况下会发生什么: 1) 项目打包为 WAR 并部署到独立的 Tomcat 2) Tomcat 从您的构建系统启动(例如,在 Maven 中有 tomcat7-maven-plugin)

    选项 2 可能是我会使用的。这样您就不必配置 IDE,因为一切都是从命令行运行的。

    【讨论】:

    • 是的,你在调试方面是对的,但在开始使用 Tomcat 进行调试之前,因为如果我部署 WAR,战争将使用同一个 Tomcat,在 Eclipse 中工作,我是 IntelliJIdea 的全新新手希望是配置问题。无论如何,Intellij 在 Tomcat 的 webapp 中创建一个 ROOT 文件夹,并将所有项目文件复制到那里。我将尝试按照您的建议调试 Tomcat 并让您知道结果。谢谢!
    • 可以在部署选项卡上的“应用程序上下文”字段中更改内容路径。您可以使用两种部署模式: 1. 战争 - 对 $TOMCAT_HOME/webapps 执行完整部署 2. 战争爆炸 - 这将熟练打包阶段,不应将任何内容写入 $TOMCAT_HOME/webappss,而是使用 ~/.IntelliJIdea14 /system/tomcat目录根据需要存放文件
    猜你喜欢
    • 2013-08-17
    • 2021-12-16
    • 2019-04-12
    • 2015-09-04
    • 2017-01-18
    • 2022-12-22
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    相关资源
    最近更新 更多