Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-1243 Resolve JBoss common jax-ws testsuite issues
  3. CXF-2110

Missing parameterOrder attribute in java2wsdl generated RPC wsdls

Attach filesAttach ScreenshotVotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.1.4
    • 2.0.11, 2.1.5
    • Tooling
    • None

    Description

      This is related to https://jira.jboss.org/jira/browse/JBWS-2528

      java2wsdl does not generate the parameterOrder attribute in the wsdl portType/operation element. This is required to preserve the original method signature of a webmethod in cases where soapHeader and IN/OUT parameters are used at the same time.
      For instance for a method like this:

      @WebMethod
      public String hello3(@WebParam(name = "id", targetNamespace = "hello3/Name", header = true) String name,
      @WebParam(name = "Name", mode = WebParam.Mode.OUT) Holder<Name> name2,
      @WebParam(name = "Employee", mode = WebParam.Mode.INOUT) Holder<Employee> employee)
      throws NameException

      { return "Hello " + name; }

      we get this portType:

      <wsdl:portType name="JBWS2528Endpoint">
      <wsdl:operation name="hello3">
      <wsdl:input name="hello3" message="tns:hello3">
      </wsdl:input>
      <wsdl:output name="hello3Response" message="tns:hello3Response">
      </wsdl:output>
      <wsdl:fault name="NameException" message="tns:NameException">
      </wsdl:fault>
      </wsdl:operation>
      </wsdl:portType>

      instead of

      <wsdl:portType name="JBWS2528Endpoint">
      <wsdl:operation name="hello3" parameterOrder="id Name Employee">
      <wsdl:input name="hello3" message="tns:hello3">
      </wsdl:input>
      <wsdl:output name="hello3Response" message="tns:hello3Response">
      </wsdl:output>
      <wsdl:fault name="NameException" message="tns:NameException">
      </wsdl:fault>
      </wsdl:operation>
      </wsdl:portType>

      This is relevant when doing java -> wsdl -> java (using CXF tools) and expecting the generated endpoint interface to be the same as the initial one. This issue was revealed when running the JavaEE 5 CTS TCK using JBossWS-CXF and configuring the jws/webparam3 reverse test. Without the parameterOrder attribute, a different interface is generated and the client test does not compile because of that.

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            asoldano Alessio Soldano
            asoldano Alessio Soldano
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment