How do I build my Grails 3.3.2 app to deploy it into a Jetty 9.1.4 contained I provide (not embedded)?
I am trying to run my Grails 3.3.2 app in a Jetty (v 9.1.4) container. I added the following to my build.gradle file.
ext['jetty.version'] = '9.1.4.v20140401'
And tried several combinations of the Spring Boot container starter.
compile "org.springframework.boot:spring-boot-starter-actuator"
provided "org.springframework.boot:spring-boot-starter-tomcat"
compile "org.springframework.boot:spring-boot-starter-jetty"
but I continue to get errors.
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)
I can run the app when embedding Jetty or Tomcat but not from my container.
I build the war from my project as follows.
grails war
2 things.
You are missing jetty-jmx-<version>.jar
dependency for that NoClassDefFoundError.
Jetty 9.1.x is EOL (End of Life), consider upgrading. https://www.eclipse.org/jetty/documentation/current/what-jetty-version.html