Michael Pereira
Michael Pereira

Reputation: 1293

Play Morphia MongoDB : The type Filter is already defined

When trying to launch a Play Java application with Morphia for MongoDB, I get the following stacktrace, caused by a recompilation of the Filter type that is already compiled :

Internal Server Error (500) for request GET /

Compilation error (In {module:morphia-1.2.3d}/app/morphia/Filter.java around line 8)
The file {module:morphia-1.2.3d}/app/morphia/Filter.java could not be compiled. Error raised is : The type Filter is already defined

play.exceptions.CompilationException: The type Filter is already defined at play.classloading.ApplicationCompiler$2.acceptResult(ApplicationCompiler.java:246)
        at org.eclipse.jdt.internal.compiler.Compiler.handleInternalException(Compiler.java:672)
        at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:516)
        at play.classloading.ApplicationCompiler.compile(ApplicationCompiler.java:278)
        at play.classloading.ApplicationClassloader.getAllClasses(ApplicationClassloader.java:412)
        at play.Play.start(Play.java:485)
        at play.Play.detectChanges(Play.java:599)
        at play.Invoker$Invocation.init(Invoker.java:186)
        at Invocation.HTTP Request(Play!)
~ ...

Upvotes: 1

Views: 538

Answers (1)

Michael Pereira
Michael Pereira

Reputation: 1293

This problem happens when the morphia module is being loaded from both the application.conf and dependencies.yml

To resolve it, go to your application.conf and comment out the line below "load morphia module", then restart Play.

# load morphia module 
#module.morphia=${play.path}/modules/morphia-1.2.3d

Upvotes: 2

Related Questions