在Grails 3.3应用程序中嵌入TomEE



My 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.*网络应用程序在TomEE上运行需要做什么?

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

也许创建一个包含两行的conf/exclusions.list,"default-list"和"grails"。如果还不够,可以添加扫描.xml以确保不扫描EE类(请参阅 https://tomee.apache.org/refcard/refcard.html(

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

相关内容

最新更新