Daniel
Daniel

Reputation: 324

Google App Engine: java.lang.NoClassDefFoundError: com/google/appengine/api/datastore/Query$Filter

I'm getting this error in production only - the development server works fine.

An older version of my app works fine in production as well - but every time I do a new deployment I get this error when I access my app. I tried to recompile the particular class where the error is thrown and to change the code, but still no luck.

I'm not really sure, but I guess it has something to do with the deployment process itself .. I'm deploying from Eclipse. I'm using:

Thanks!

UPDATE:

Here is some simple test code:

@Override
public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException {
    res.setContentType("text/plain");
    res.setCharacterEncoding("UTF-8");

    // this throws: java.lang.NoClassDefFoundError - only in PRODUCTION
    Query.Filter filter = Query.FilterOperator.EQUAL.of("name", null);

    res.getWriter().print("Hello App Engine: " + filter);
}

This fails in production but works on the development server!

Update 2: Opened an issue with Google: https://issuetracker.google.com/issues/76144204

Upvotes: 2

Views: 1908

Answers (1)

Daniel
Daniel

Reputation: 324

This is a Google issue which is currently being looked into: https://issuetracker.google.com/issues/76144204

The fix for the moment is to copy appengine-api-1.0-sdk-1.9.63.jar file into the WEB-INF/lib directory as explained in this comment: https://issuetracker.google.com/issues/76144204#comment45

Upvotes: 1

Related Questions