grails - micronaut 已经与在独立 tomcat 8.5 上运行 grails 4 应用程序的父 beanfactory 错误相关联
问题描述
Tomcat 8.5.71 Grails 4.0.11 RHEL 7.8
该应用程序在嵌入式 tomcat 上运行良好,但无法独立加载。堆栈跟踪是:
无法在 org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440) 在 org.apache.catalina.util.LifecycleBase 中启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/gdbxt]] .start(LifecycleBase.java:198) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753) ... 9 更多原因:java.lang.IllegalStateException: 已经与父 BeanFactory:io 关联。 micronaut.spring.context.factory.MicronautBeanFactory@347aa4db:定义bean [];org.springframework.context.support.GenericApplicationContext.setParent(GenericApplicationContext.java:158) org.springframework.boot org.springframework.context.support.AbstractBeanFactory.setParentBeanFactory(AbstractBeanFactory.java:718) 的工厂层次结构的根.builder。
为独立tomcat构建的war文件具有build.gradle
provided "org.springframework.boot:spring-boot-starter-tomcat"
我有
服务器:端口:8091
在 application.yml 中,并且在 tomcat server.xml 中将连接器设置为 8091
这个应用程序是从 grails 2.5.5 移植的。并且非常大,有许多额外的依赖项。它有石英作业,我在 application.yml 中使用quartz.pluginEnabled: false 禁用了这些作业。
它确实可以运行 bootstrap.groovy,因为它会从该代码中打印出一些日志记录。
有人可以指出这种错误的可能原因吗?
解决方案
原来,通过创建新的 grails 4 项目并从 grails2 项目中复制文件进行迁移时,我在 grails-app/init 文件夹中创建了一个额外的包。该错误是由于尝试从第二个 init 文件夹中的 Application.groovy 实例化第二个应用程序。令人惊讶的是,它可以与内置的 tomcat 和 run-app 一起使用。
推荐阅读
- python-3.x - 为什么用 G.add_edges_from() 添加的边不匹配 G.edges()?
- javascript - firebase.auth 和 firebase.auth() 有什么区别?
- amazon-web-services - 如何从 shell 脚本中捕获 Spark 错误
- node.js - 在 post API 中发出的 node express 请求
- react-router-dom - React 路由器历史推送进入初始路由
- java - Selenium IE11 文件下载 - 非机器人框架解决方案
- c - 无法从我用 C 编写的 HTTP 服务器获取 html 页面
- excel - 如何显示缩放投票结果文件中的数据?
- python - 如何在 Python 中使用字典将学生与成绩联系起来
- python - 如何为重叠的 alpha 图层创建图例?