首页 > 解决方案 > 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

标签: tomcatgradlegrailsapache-tomee

解决方案


Tomitribe(TomEE 支持小组)证实 Spring/Grails 和 TomEE 之间存在太多冲突。他们的建议是不要一起使用它们。相反,使用标准的 Tomcat 和 Grails。


推荐阅读