如何构建Grails 3.3.2应用程序以将其部署到我提供的Jetty 9.1.4中(未嵌入)?
我正在尝试在Jetty(v 9.1.4)容器中运行Grails 3.3.2应用程序。我将以下内容添加到了build.gradle文件中。
ext['jetty.version'] = '9.1.4.v20140401'
并尝试了Spring Boot容器启动器的几种组合。
compile "org.springframework.boot:spring-boot-starter-actuator"
provided "org.springframework.boot:spring-boot-starter-tomcat"
compile "org.springframework.boot:spring-boot-starter-jetty"
但是我仍然遇到错误。
2018-08-15 17:07:49.375:INFO:oejs.Server:main: jetty-9.1.4.v20140401
2018-08-15 17:07:51.722:WARN:oejj.ObjectMBean:main:
java.lang.NoClassDefFoundError: org/eclipse/jetty/jmx/ObjectMBean
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:427)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:389)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
当嵌入Jetty或Tomcat时,我可以运行该应用程序,但不能从我的容器中运行。
我从我的项目中进行战争,如下所示。
grails war
答案 0 :(得分:0)
两件事。
您缺少该NoClassDefFoundError的jetty-jmx-<version>.jar
依赖项。
Jetty 9.1.x已停产(生命周期终止),请考虑升级。 https://www.eclipse.org/jetty/documentation/current/what-jetty-version.html