Uploaded image for project: 'Weld'
  1. Weld
  2. WELD-2797

Unable to run embedded web server in unit test due to conflicting weld-se / weld-servlet versions

XMLWordPrintable

    • Icon: Feature Request Feature Request
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • 5.1.3.Final
    • None
    • None

      I'm trying to run an embedded web server (tomcat or jetty) in a junit test. The problem is that during weld bootstrapping when starting the embedded web server it picks up jakarta.enterprise.inject.spi.Extension from the weld-se package (org.jboss.weld.environment.se.WeldSEBeanRegistrant) instead of the weld-servlet package (org.jboss.weld.module.web.WeldWebModule) which leads to the following exception:

      Caused by: java.lang.RuntimeException: Service class org.jboss.weld.environment.se.WeldSEBeanRegistrant didn't implement the required interface
              at org.jboss.weld.util.ServiceLoader.loadClass(ServiceLoader.java:230)
              at org.jboss.weld.util.ServiceLoader.loadService(ServiceLoader.java:210)
              at org.jboss.weld.util.ServiceLoader.loadServiceFile(ServiceLoader.java:184)
              at org.jboss.weld.util.ServiceLoader.reload(ServiceLoader.java:164)
              at org.jboss.weld.util.ServiceLoader.iterator(ServiceLoader.java:288)
              at org.jboss.weld.util.collections.ImmutableSet$BuilderImpl.addAll(ImmutableSet.java:158)
              at org.jboss.weld.environment.servlet.WeldServletLifecycle.createDeployment(WeldServletLifecycle.java:275)
              at org.jboss.weld.environment.servlet.WeldServletLifecycle.initialize(WeldServletLifecycle.java:153)
              at org.jboss.weld.environment.servlet.EnhancedListener.onStartup(EnhancedListener.java:66)
              at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4412)
              at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
              ... 25 more
      

      Is there any clever trick to make weld-se-core and weld-servlet-core on the same classloader behave correctly?

            Unassigned Unassigned
            jansohn Robin Jansohn
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: