【问题标题】:Running Spring Boot application with Jersey and Groovy in IntellJ在 IntelliJ 中使用 Jersey 和 Groovy 运行 Spring Boot 应用程序
【发布时间】:2014-02-25 05:30:12
【问题描述】:

我正在使用带有 servlet 的模板 Spring Boot 应用程序。当我将最新的 Jersey(用于 jax-rs)添加到应用程序,然后将 Groovy 框架添加到应用程序(仅用于测试)时,我开始在 IntelliJ 中运行应用程序时遇到问题。

Groovy 类路径上的一些库似乎与来自 Jersey 的库(servlet-api 和 ASM)发生冲突,但我还不能 100% 确定这是问题所在。确保 IntelliJ 构建的类路径与 maven 不同

似乎与spring-boot maven插件所做的技巧有关,但这只是一个怀疑。通过java -jar 运行失败,而通过mvn spring-boot:run 运行有效(从命令行以及从IntelliJ)。

我得到了这个例外: Caused by: org.apache.catalina.LifecycleException: A child container failed during start

【问题讨论】:

  • 这是一个完全通用的例外。您需要发布堆栈跟踪(实际上是来自应用程序的堆栈跟踪,而不是容器,在正常情况下会单独打印出来)。更好地分享代码,这样我们就可以看到你做了什么。您可能可以检查 IDE 中的依赖项(至少 Eclipse 在这方面非常出色),看看是否有任何问题。
  • 我已经这样做了,但它是一个移动的目标。首先是 ASM 引起了麻烦,然后是 servlet api 附带 groovy 等等……每次异常都不同,我唯一能采取的措施是从 groovy 运行时 lib 文件夹中删除一个库。
  • 我非常强烈地推荐使用 groovy 发行版(带有 servlet jar 和其他东西)来构建或运行您的应用程序。使用依赖管理系统来控制依赖关系要好得多。只需使用 maven 构建项目并运行它。
  • 谢谢。这也是我采取的方法,希望有人解决了这个问题。

标签: groovy intellij-idea jersey jax-rs spring-boot


【解决方案1】:

看起来问题的一部分是我如何设置我的 gmaven。 当我像在这篇文章 https://stackoverflow.com/a/19539452/672738 中那样设置它时,问题就消失了,我的应用程序在 IntelliJ 中使用 java -jar 愉快地启动

【讨论】:

    【解决方案2】:

    我只是解决了这个问题。

    Groovy 还包含了 servlet-api lib,它与 spring boot 导入的 lib 冲突。

    您可以只从 groovy 中排除 servlet-api。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-15
      • 2016-06-20
      • 2015-03-25
      • 2015-05-29
      • 2020-08-30
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多