Grails 3.3应用程序中的嵌入式TomEE

时间:2019-08-05 19:52:09

标签: tomcat gradle grails 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'.)

我在某处读到我应该将对标准Tomcat的依赖替换为对TomEE的依赖,但是我找不到解决方法。我目前对Tomcat(在Gradle构建中)的依赖是:

provided "org.springframework.boot:spring-boot-starter-tomcat"

我从以下位置更改:

compile 'org.springframework.boot:spring-boot-starter-tomcat'

没有可见的效果。

我的Grails3.3。* Web应用程序可在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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

相关问题