DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14638>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14638 Axis unwraps document/literal request elements as server method arguments. Summary: Axis unwraps document/literal request elements as server method arguments. Product: Axis Version: 1.0 Platform: Other OS/Version: Other Status: NEW Severity: Normal Priority: Other Component: Basic Architecture AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] For a wsdl in document/literal style Axis generates Server implementation classes that take the request element's sub elements as arguments. This is ok for rpc style but causes mulitple problems when the request element is a complex XML element. 1) Axis sends elements with xsi:isnil="true" even if req element is optional because of use of <choice/> 2) Axis expects others to send empty isnil="true" elements whereas .NET just drops sub-elements when not present in the request doc (e.g. if minOccurs="0"). 3) Axis does not like attributes on the request element. Unwrapping and isnil seem rpc type of things to be doing and Axis should accept as broad a set of values for the input request document as possible for document/literal style. Example: <element name="getServiceDescription"> <complexType> <sequence> <element name="registrationContext" type="types:RegistrationContext" minOccurs="0"/> <element name="userContext" type="types:UserContext"/> </sequence> </complexType> </element> <element name="getServiceDescriptionResponse" type="types:ServiceDescription"/> <wsdl:message name="getServiceDescription"> <wsdl:part name="getServiceDescription" element="types:getServiceDescription"/> </wsdl:message> <wsdl:message name="getServiceDescriptionResponse"> <wsdl:part name="getServiceDescriptionResponse" element="types:getServiceDescriptionResponse"/> </wsdl:message> generates: public void getServiceDescription(org.oasis_open.www.RegistrationContext registrationContext, org.oasis_open.www.UserContext userContext, org.oasis_open.www.holders.ExtensionArrayHolder extension) throws java.rmi.RemoteException { ... } It would be much better to produce: public void getServiceDescription(GetServiceDescription request) as well as a new GetServiceDescription serialization class that can deal with missing fields, attributes, choices etc which the current method argument logic seems to have (mulitple) problems with. Cheers, Andre