Uploaded image for project: 'Axis2'
  1. Axis2
  2. AXIS2-4999

Not dectecting wrapper classes for bare style SEI

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Invalid
    • 1.6.0
    • None
    • jaxws
    • None

    Description

      I found that the class org.apache.axis2.jaxws.runtime.description.marshal.impl.ArtifactProcessor is used to find the wrapper class for request, response and fault. But is it required to check the parameter first, and if it is of bare style, the following codes could be ignored. ?
      --->
      void build() {
      for (EndpointDescription ed : serviceDesc.getEndpointDescriptions()) {
      if (ed.getEndpointInterfaceDescription() != null && ed.getEndpointInterfaceDescription().getSoapBindingParameterStyle() == SOAPBinding.ParameterStyle.WRAPPED) { <--- add the parameter style chceking
      for (OperationDescription opDesc : ed.getEndpointInterfaceDescription()
      .getOperations()) {
      <---

      I found that in some cases, e.g.
      @WebService
      @SOAPBinding(parameterStyle=BARE)
      public interface Hello

      { public void hello(); ... }

      In this case, the SEI class has the same name with its method, and in ArtifactProcessor, even it is marked as BARE parameter style, Hello will be configured as the request wrapper class. Also, it is added to the context-packages, in the later message process, it would throw exception like Hello is not in the jaxbContext.
      Thoughts ?

      Attachments

        1. AXIS2-4999-01.patch
          5 kB
          Haihong Xu
        2. AXIS2-4999.patch
          1 kB
          Haihong Xu

        Activity

          People

            Unassigned Unassigned
            xuhaihong Haihong Xu
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: