Getting “ClassNotFoundException: ResteasyBootstrap

2019-04-11 16:12发布

问题:

I am getting the following exception:

java.lang.ClassNotFoundException: org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:525)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:507)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:124)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4715)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

I have the following dependencies in my pom file:

    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-spring</artifactId>
        <version>${resteasy.version}</version><!--$NO-MVN-MAN-VER$ -->
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxrs</artifactId>
        <version>2.3.0.GA</version>
    </dependency>  

I also see the resteasy-jaxrs-2.3.0.GA.jar in the WEB/INF/lib folder. Please let me know which dependency is missing. I also checked Getting "java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet" in Eclipse + jboss 5.1.0 and have all in place.

I also get the following error:

SEVERE: Error configuring application listener of class          org.jboss.resteasy.plugins.spring.SpringContextLoaderListener
java.lang.ClassNotFoundException: org.jboss.resteasy.plugins.spring.SpringContextLoaderListener

Despite having the following dependency:

    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-spring</artifactId>
        <version>${resteasy.version}</version>
    </dependency>

回答1:

I finally solved it. The solution was simple. Right Click on the project and select 'Properties'. Under project properties, select 'Deployment Assembly'. Add Maven Dependency here. You need to tell Eclipse that you want all your Maven dependencies to be published too.



回答2:

I had the same problem in Wildfly. It turned out that the deployed WAR needs at least one endpoint to do the bootstrap, see below. Otherwise I got java.lang.ClassNotFoundException: org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap:

@Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_JSON })
public class ConfigurationEndpoint {

  @Path("/info")
  @GET
  public Response getInfo() {
    return Response.ok().build();
  }
}


回答3:

If your project is maven base project then run

mvn eclipse:clean

mvn eclipse:eclipse

it will add jar from m2 repo to lib folder then redeploy webapp and restart tomcat/server