OpenEJB
  1. OpenEJB
  2. OPENEJB-1020

Inheritance not supported in JAX-WS endpoint interfaces exposed via CXF

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 3.0-beta-1, 3.0-beta-2, 3.0, 3.1
    • Fix Version/s: 3.1.3
    • Component/s: integration, webservices
    • Labels:
      None

      Activity

      Hide
      Jean-Louis MONTEIRO added a comment -

      OPENEJB-977 is now closed so we can definitely support SEI inheritance.
      Committed revision 893441.

      Show
      Jean-Louis MONTEIRO added a comment - OPENEJB-977 is now closed so we can definitely support SEI inheritance. Committed revision 893441.
      Hide
      Jean-Louis MONTEIRO added a comment -

      OK, the patch for OPENEJB-977 has been finalized so we are able to support SEI inheritance (JAX-WS 2.1 feature).

      Show
      Jean-Louis MONTEIRO added a comment - OK, the patch for OPENEJB-977 has been finalized so we are able to support SEI inheritance (JAX-WS 2.1 feature).
      Hide
      Jean-Louis MONTEIRO added a comment -

      Hi,

      I've done some tests around this topic.
      I checked over specifications first and I've seen it's a JAX-WS 2.1 feature.

      By default, the runtime just examines the exact classes referenced from the SEI interface to figure out what classes need to be bound into the JAXB context. A way to change it is to use the JAXB annotation @XmlSeeAlso where it's needed.

      For example:
      @WebService
      public interface BaseService

      { String echo(String toEcho); }

      @WebService
      public interface HelloWorld extends BaseService

      { String sayHi(String text); }

      @WebService(serviceName = "HelloWorld")
      @XmlSeeAlso(value =

      {BaseService.class}

      )
      public class HelloWorldImpl implements HelloWorld {

      public String sayHi(String text)

      { return "Hello " + text; }

      public String echo(String toEcho)

      { return toEcho; }

      }

      But the case is that OpenEJB embeds CXF 2.0.x which does not support JAX-WS 2.1
      To support interface inheritance, we have to migrate to CXF 2.1 (min)

      I've tested it with CXF (standalone) and it works fine.
      But, we can not change CXF version out of the box in OpenEJB because API has been modified.

      I'm working with a colleague to get OpenEJB compiling and running with CXF 2.2.1 (lastest version available).

      First results are expected by the end of this week.

      Kind regards,
      Jean-Louis

      Show
      Jean-Louis MONTEIRO added a comment - Hi, I've done some tests around this topic. I checked over specifications first and I've seen it's a JAX-WS 2.1 feature. By default, the runtime just examines the exact classes referenced from the SEI interface to figure out what classes need to be bound into the JAXB context. A way to change it is to use the JAXB annotation @XmlSeeAlso where it's needed. For example: @WebService public interface BaseService { String echo(String toEcho); } @WebService public interface HelloWorld extends BaseService { String sayHi(String text); } @WebService(serviceName = "HelloWorld") @XmlSeeAlso(value = {BaseService.class} ) public class HelloWorldImpl implements HelloWorld { public String sayHi(String text) { return "Hello " + text; } public String echo(String toEcho) { return toEcho; } } But the case is that OpenEJB embeds CXF 2.0.x which does not support JAX-WS 2.1 To support interface inheritance, we have to migrate to CXF 2.1 (min) I've tested it with CXF (standalone) and it works fine. But, we can not change CXF version out of the box in OpenEJB because API has been modified. I'm working with a colleague to get OpenEJB compiling and running with CXF 2.2.1 (lastest version available). First results are expected by the end of this week. Kind regards, Jean-Louis

        People

        • Assignee:
          Jean-Louis MONTEIRO
          Reporter:
          David Blevins
        • Votes:
          1 Vote for this issue
          Watchers:
          1 Start watching this issue

          Dates

          • Created:
            Updated:
            Resolved:

            Development