3 Replies Latest reply on Jun 5, 2007 11:55 AM by thomas.diesler

    Stop enforcing parameter names?

    bcowan

      I've recently updated a web service from JBoss 4.0.2 to 4.0.5 with JBossWS 1.2.1, and it's causing problems. The new setup enforces the proper naming of method parameters, instead of just taking them positionally.

      Some older clients don't send the proper parameter names. For example, Axis generated clients just call them "in0", "in1", "in2", etc. Whereas the old server happily accepted this, the new one throws a NotFound exception because the WSDL lists them as "String_1", "String_2", and so on.

      Is there any way to stop enforcing parameter names? The WSDL specifies the proper order, and this is all we need. It is important so remain compatible with old clients without changing the WSDL.

      Thanks,
      Bruce

        • 1. Re: Stop enforcing parameter names?
          thomas.diesler

          The question is, whether the incomming message conforms to the abstract contract published by the endpoint. If the message is invalid with that respect it simply is invalid

          • 2. Re: Stop enforcing parameter names?
            bcowan

             

            "thomas.diesler@jboss.com" wrote:
            The question is, whether the incomming message conforms to the abstract contract published by the endpoint. If the message is invalid with that respect it simply is invalid


            At this point we're much more concerned about consistency. Updating to a newer server version has invalidated several thousand clients because the server has changed the way it validates the messages. Granted that those clients don't conform 100% to the published WSDL, but the tools at the time (including JBoss) ignored parameter names so it has never been an issue. Since the WSDL specifies the type and order of the parameters, validation of the actual name wasn't (and perhaps isn't) required.

            We just need the current version of the JBoss web service stack to handle messages in compatible manner with the prior version. Judging by your response, it sounds like there is no such compatibility option.

            Regards,
            Bruce

            • 3. Re: Stop enforcing parameter names?
              thomas.diesler

              You can setup an endpoint that consumes raw XML. Have a look at JAXWS @Provider, also an XML preproccessing phase might do the job for you