I upgraded my WSDL-first service to use XFire 1.2.5 today. Swapped out the jars and ran the application-and discovered that it no longer worked-whenever I sent a request to the service, I got a java.lang.IndexOutOfBoundsException.
So I decided I better try regenerating the server stubs using the new 1.2.5 jar. I found that the generated service interface was quite a bit different now. (1) The parameter style has changed from SOAPBinding.ParameterStyle.BARE to SOAPBinding.ParameterStyle.WRAPPED. This is probably more accurate, as I had designed the WSDL in doc/literal wrapped style. (2) The signature of the methods has drastically changed. Whereas before an operation called MyOperation would look like this: MyOperationResponseType myOperation ( MyOperationType input); Now, it looks more like this: int myOperation (String input1, String input2, Holder<String> output1, Holder<String> output2); All of the individual elements of the request and response are individually referenced, one of the output elements is the return type, and the others are passed in as parameters, wrapped in a Holder. Now of course, my old implementation is totally out of wack with the new generated interface. A few questions: (1) What caused this huge change between 1.2.4 and 1.2.5? (2) Is the new functionality described above the intended functionality? (3) If so, are there any advantages to the new way aside from the possibility that some people might just like it that way? (4) If there are no concrete advantages, is there an easy way for me to configure it to generate the interface the way it used to (I guess that might mean forcing it to BARE)? Thanks! Chris
