I am using org.glassfish.jersey.ext:jersey-spring3 for Injecting Spring Beans into Jersey JAX-RS resource class. Bean injection works fine except for this jar also contains SpringWebApplicationInitializer class which directly interferes with my own Custom WebApplicationInitializer. For testing purpose, I forcibly removed SpringWebApplicationInitializer from initializing in SpringServletContainerInitializer in Debug mode and my app runs fine.
I also tried maven-shade-plugin with following configuration
<plugin>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>org.glassfish.jersey.ext:jersey-spring3</artifact>
<excludes>
<exclude>org/glassfish/jersey/server/spring/SpringWebApplicationInitializer.class</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
This plugins copies both jars and classes to WAR file. SO even though SpringWebApplicationInitializer.class was removed, original jar (which still contains SpringWebApplicationInitializer.class) was copied and SpringServletContainerInitializer is still picking up SpringWebApplicationInitializer class.