This problem occurs because the 3.1 servlet-api .jar file you are depending upon was built with JDK7 and the classes it contains use a class file format that is only compatible on JDK7 or later.
For example, using the following Maven/gradle/ant+ivy/sbt/etc dependency in a project will fail if the project is compiled with JDK 6:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
According to the Java EE 7 specification - which includes the Servlet 3.1 specification - JDK7 is required to run Java EE 7-based containers and applications. Therefore, whoever compiled and distributed the 3.1 servlet-api .jars to Maven central (the core Servlet API team?) had no reason/need to ensure JDK 6 binary compatibility.
Downgrading the above dependency to version 3.0.1
should solve your issue.