Start Tomcat 8 with Arquillian in JUnit

I am trying to run integration tests for my web application. So I want to start Tomcat 8 from JUnit Test.

@RunWith(Arquillian.class)
public class ServiceTest {

    @ArquillianResource
    private URL baseURL;


    /**
     * Define the deployment
     */
    @Deployment(testable=false)
    public static WebArchive createTestArchive() {

        File[] files = Maven.configureResolver().workOffline()
                .loadPomFromFile("pom.xml")
                .resolve("org.glassfish.jersey.containers:jersey-container-servlet-core",
                        "org.jboss.weld.servlet:weld-servlet",
                        "org.glassfish.jersey.containers.glassfish:jersey-gf-cdi")
                .withTransitivity()
                .asFile();

        WebArchive webArchive = ShrinkWrap
                .create(WebArchive.class, "api.war")
                .addClass(de.example.service.servlet.ServletContextInitalizer.class)
                .addClass(de.example.service.rest.PolygonService.class)
                ...
                .addAsLibraries(files);

        return webArchive;
    }

      

My pom.xml file can be found here . I see that my ServletContextListener implementation is being called correctly, but after loading the Listener, I get a ClassCastException:

java.lang.ClassCastException: org.glassfish.jersey.server.filter.internal.    ServerFiltersAutoDiscoverable cannot be cast to org.glassfish.jersey.internal.spi.AutoDiscoverable
    at org.glassfish.jersey.model.internal.CommonConfig.configureAutoDiscoverableProviders(    CommonConfig.java:583)
    at org.glassfish.jersey.server.ResourceConfig.configureAutoDiscoverableProviders(    ResourceConfig.java:791)
    at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:381)
    at org.glassfish.jersey.server.ApplicationHandler.access$500(ApplicationHandler.java:162)
    at org.glassfish.jersey.server.ApplicationHandler$3.run(ApplicationHandler.java:322)
    at org.glassfish.jersey.internal.Errors$2.call(Errors.java:289)
    at org.glassfish.jersey.internal.Errors$2.call(Errors.java:286)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
    at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:286)
    at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:319)
    at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:284)
    at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:311)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:168)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:358)
    at javax.servlet.GenericServlet.init(GenericServlet.java:244)
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1241)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1044)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4922)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5204)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:724)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:697)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:919)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1704)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

      

Any help is kindly appreciated!

Cheers, Daniel

+3


source to share





All Articles