Wednesday, July 25, 2012

Embedded Glassfish 3.1.2 - Arquillian compile error

If you get :
Absent Code attribute in method that is not native or abstract in class file javax/validation/constraints/Pattern$Flag
Solution: remove this dependency (if you have it)

Another one:
ArquillianServletRunner not found. Could not determine ContextRoot from ProtocolMetadata, please contact DeployableContainer developer.
which is caused by
Error invoking ServletContainerInitializer org.apache.jasper.runtime.TldScanner
java.lang.NoSuchMethodError: javax.servlet.ServletContext.getServletRegistration(Ljava/lang/String;)Ljavax/servlet/ServletRegistration;
 at org.apache.jasper.runtime.TldScanner.onStartup(
Solution is to modify your pom.xml. Tell maven-surefire-plugin to ignore servlet-api 2.3
Taken from this site:


Bruno Antunes said...

Very useful post. Thanks

Bruno Antunes

Bas said...

If you have transitive dependencies that include servlet-api, you can exclude it with one of more exclusions entries on the dependency.

< exclusions >
< exclusion >
< groupId >javax.servlet< /groupId >
< artifactId >servlet-api< /artifactId >
< /exclusion >
< exclusion >
< groupId >org.mortbay.jetty< /groupId >
< artifactId >servlet-api< /artifactId >
< /exclusion >
< /exclusions >