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

Session EJB deployment failure

    XMLWordPrintable

Details

    • Compatibility/Configuration

    Description

      Starting with Weld 1.1.5.Final there are several CTS failures when running CTS against GlassFish. One specific test failure is org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationIntegrationTest. When the application associated with this test is deployed the deployment fails (see "Deployment Failure" below). I investigated the specs and it appears that weld is expecting the type of the session ejb (Office) to include the interface defined by the session bean that it extends (Building).

      The CDI spec states in section "4.3.1 Direct and indirect specialization"
      ...
      Furthermore, X must have all the bean types of Y. If X does not have some bean type of Y, the container automatically detects the problem and treats it as a definition error.
      ..

      However this is in direct violation of the ejb 3.1 specification section 4.9.2.1 Session Bean Superclasses:
      ...
      As an example, the client views exposed by a particular session bean are not inherited by a subclass that also happens to define a session bean.
      @Stateless
      public class A implements Foo

      { ... }
      @Stateless
      public class B extends A implements Bar { ... }

      Assuming Foo and Bar are local business interfaces and there is no associated deployment descriptor, session bean A exposes local business interface Foo and session bean B exposes local business interface Bar, but not Foo.
      ...

      Deployment Failure:
      [#|2012-05-09T18:19:20.875-0400|SEVERE|44.0|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=12;_ThreadName=Thread-2;|WELD-001511 Specializing bean Session bean [class org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.Office with qualifiers [@Any @Default]; local interfaces are [OfficeLocal] does not have bean type interface org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.BuildingLocal of specialized bean Session bean [class org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.Building with qualifiers [@Any @Default]; local interfaces are [BuildingLocal]
      org.glassfish.deployment.common.DeploymentException: WELD-001511 Specializing bean Session bean [class org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.Office with qualifiers [@Any @Default]; local interfaces are [OfficeLocal] does not have bean type interface org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.BuildingLocal of specialized bean Session bean [class org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.Building with qualifiers [@Any @Default]; local interfaces are [BuildingLocal]

      Attachments

        Issue Links

          Activity

            People

              marko.luksa@gmail.com Marko Luksa (Inactive)
              jjsnyder Joseph Snyder (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: