0

I have taken over the development and support of a web application with the following specifications:

  • Java SE 1.6
  • Tomcat 6
  • Jersey 1.7

EDIT I am using eclipse and running the project from with eclipse. Not certain if this makes a difference or not.

EDIT Apologies. I am using jersey 1.17.1 not Jersey 1.7

I am not using Maven at this point. My web.xml entry for the new service is

  <servlet>
    <servlet-name>RESTService</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>com.gy.restservices</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>RESTService</servlet-name>
    <url-pattern>/api/*</url-pattern>
  </servlet-mapping>

The application starts up just fine, but when I make a call to the service I receive

org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Allocate exception for servlet RESTService
java.lang.IncompatibleClassChangeError: Implementing class
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2946)
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1177)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1665)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1544)
    at com.sun.jersey.api.core.ScanningResourceConfig.init(ScanningResourceConfig.java:79)
    at com.sun.jersey.api.core.PackagesResourceConfig.init(PackagesResourceConfig.java:104)
    at com.sun.jersey.api.core.PackagesResourceConfig.<init>(PackagesResourceConfig.java:78)
    at com.sun.jersey.api.core.PackagesResourceConfig.<init>(PackagesResourceConfig.java:89)
    at com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:696)
    at com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:674)
    at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:203)
    at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:374)
    at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:557)
    at javax.servlet.GenericServlet.init(GenericServlet.java:270)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1213)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:827)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:610)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:503)
    at java.lang.Thread.run(Unknown Source)

I am not certain as to what is causing this issue.

I've looked at this SO question but it pertains to deploying to google app engine.

Community
  • 1
  • 1
Paul Stoner
  • 1,359
  • 21
  • 44
  • From [its docs](https://docs.oracle.com/javase/8/docs/api/java/lang/IncompatibleClassChangeError.html): "Thrown when an incompatible class change has occurred to some class definition. The definition of some class, on which the currently executing method depends, has since changed." This probably arises because of mismatched classes in your application (solve by performing a clean build), but it could also arise from mismatched server components or third-party libraries (solve by deploying a compatible combination of components). – John Bollinger Apr 26 '17 at 17:37
  • @JohnBollinger After doing several thorough cleans, project builds, etc. I am still receiving the same error. – Paul Stoner Apr 26 '17 at 18:05

1 Answers1

0

Well. This one is resolved. I changed from the jersey-bundle-1.17.1.jar to the jersey-bundle-1.19.1.jar and now my REST service is working.

Paul Stoner
  • 1,359
  • 21
  • 44