tomcat - Grails 3.3 应用程序中的嵌入式 TomEE
问题描述
我的 Grails 2.4 应用程序在 Tomcat 和 TomEE 上运行良好。
最近我将它升级到 Grails 3.3.*。现在它在部署到标准 Tomcat 时仍然可以正常工作,但无法在 TomEE 上启动。前几个错误消息是:
05-Aug-2019 16:03:00.588 SEVERE [localhost-startStop-1] org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy servlet XXXXXXX has no servlet-class defined and is not a subclass of Application
05-Aug-2019 16:03:00.660 SEVERE [localhost-startStop-1] org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal Unable to deploy collapsed ear in war StandardEngine[Catalina].StandardHost[localhost].StandardContext[/XXXXXXX]
org.apache.openejb.OpenEJBException: Can't find resource for class asset.pipeline.grails.AssetProcessorService#grailsLinkGenerator. (No provider available for resource-ref 'null' of type 'grails.web.mapping.LinkGenerator' for 'XXXXXXX.Comp1855693364'.)
我在某处读到我应该用对 TomEE 的依赖替换对标准 Tomcat 的依赖,但我找不到如何做到这一点。我目前对 Tomcat 的依赖(在 Gradle 构建中)是:
provided "org.springframework.boot:spring-boot-starter-tomcat"
我改变了:
compile 'org.springframework.boot:spring-boot-starter-tomcat'
没有明显的效果。
我的 Grails3.3.* Web 应用程序在 TomEE 上运行需要做什么?
东欧信息:
05-Aug-2019 16:02:47.201 INFO [main] sun.reflect.NativeMethodAccessorImpl.invoke Server version: Apache Tomcat (TomEE)/8.5.41 (7.0.6)
05-Aug-2019 16:02:47.201 INFO [main] sun.reflect.NativeMethodAccessorImpl.invoke Server built: May 4 2019 09:17:16 UTC
05-Aug-2019 16:02:47.201 INFO [main] sun.reflect.NativeMethodAccessorImpl.invoke Server number: 8.5.41.0
05-Aug-2019 16:02:47.201 INFO [main] sun.reflect.NativeMethodAccessorImpl.invoke OS Name: Linux
05-Aug-2019 16:02:47.202 INFO [main] sun.reflect.NativeMethodAccessorImpl.invoke OS Version: 3.10.0-862.11.6.el7.x86_64
05-Aug-2019 16:02:47.202 INFO [main] sun.reflect.NativeMethodAccessorImpl.invoke Architecture: amd64
05-Aug-2019 16:02:47.202 INFO [main] sun.reflect.NativeMethodAccessorImpl.invoke Java Home: /usr/local/jdk/jre
05-Aug-2019 16:02:47.202 INFO [main] sun.reflect.NativeMethodAccessorImpl.invoke JVM Version: 1.8.0_212-b03
05-Aug-2019 16:02:47.202 INFO [main] sun.reflect.NativeMethodAccessorImpl.invoke JVM Vendor: Eclipse OpenJ9
解决方案
Tomitribe(TomEE 支持小组)证实 Spring/Grails 和 TomEE 之间存在太多冲突。他们的建议是不要一起使用它们。相反,使用标准的 Tomcat 和 Grails。
推荐阅读
- python - 如何在烧瓶 python 应用程序中执行 curl POST 命令
- python-3.x - Pandas - 使用 .apply(pd.to_datetime) 时排除时区
- tensorflow - 自定义 tensorflow 矛盾的 AVX2/FMA 消息?
- php - 无法使用 php 和 url 填充表单输入
- http - Redmine 会议预订插件返回 422 Unprocessable Entity
- java - 如何防止vaadin组件调整大小?
- sql - 来自一列的 SQL UPDATE 数据与来自另一列的匹配
- azure - 如何启用应用程序洞察遥测关联
- sql - 在所有表 SQL 的一列中显示所有文本字段
- c# - 不使用 Swagger Azure AD OAuth2 令牌