Re: [jira] Created: (WSIF-85) Axis provider always uses SOAP encoding style
Christian Kloner <[email protected]> Fri, 03 Mar 2006 21:15:45 +0100
| Newsgroups | gmane.comp.apache.webservices.wsif.devel |
|---|---|
| Message-ID | <[email protected]> |
ok, that's because the implemented DynamicProvider for Axis in the WSIF is a wrapper around the Axi's Call class and you have to register for each complex type or rather element in the schema found in the wsdl file a serializer/deserializer class (this classes are usually gernerated by the wsdl2java tool). these values for the fields in the generated classes by wsdl2java will be used to write the xml code. I am not sure but in these generated classes there are also ParameterDesc objects found, which stores the description of the fields. I think you can set a ParameterDesc object of a field explicitly to doc/literal. but i am not sure. but if you want to use complex types, you have to register the generated classes to be found by the WSIF, but I think you have already done this! At the moment to my best knowledge it is better to use axis2 for doc/literal web services. you can create the xml elements of the soap body very easyly with AXIOM and add it to a SoapEnvelope of a message which will be sent to the Web Service. I used WSIF but now i use AXIS2 to generate dynamic invocations. lg, chris Jeff MAURY schrieb: > Christian Kloner wrote: >> hmm. this is strange because in my case (doc/literal), it always >> works because after the wsdl file has been parsed, the encoding is >> automatically detected. but i only use WSIF for Web Services with >> datataypes which are built into the java language like String, >> Integer, etc. > > If you don't use complex or array types, then this causes no error. > But array or complex types will lead to errors. > > Jeff > >> >> >> >> >> Jeff MAURY schrieb: >>> Christian Kloner wrote: >>>> ups, it must be like that (I posted my own implementation class of >>>> the Provider Interface, sry): >>>> >>>> //We use Axis, set the Axis provider to make sure not to use the >>>> soap provider >>>> WSIFPluggableProviders.overrideDefaultProvider( >>>> "http://schemas.xmlsoap.org/wsdl/soap/", >>>> new >>>> org.apache.wsif.providers.soap.apacheaxis.WSIFDynamicProvider_ApacheAxis()); >>>> >>> Christian, >>> >>> thanks for you help but your mail answers to the following question: >>> how >>> can I use the Axis provider instead of the Apache SOAP one for SOAP >>> calls. Where my question was, once I use the Axis provider, it always >>> uses the RPC SOAP encoding and provide no space for literal encoding. >>> >>> Jeff >>> >>>> >>>> >>>> >>>> Christian Kloner schrieb: >>>>> You have to specify the Provider for the >>>>> http://schemas.xmlsoap.org/wsdl/soap/ namespace explicitly e.g.: >>>>> >>>>> //We use Axis only, set our modified Axis provider >>>>> WSIFPluggableProviders.overrideDefaultProvider( >>>>> "http://schemas.xmlsoap.org/wsdl/soap/", >>>>> new WSIFDynamicProvider_ICAxis()); >>>>> >>>>> lg, >>>>> chris >>>>> >>>>> Jeff MAURY (JIRA) schrieb: >>>>>> Axis provider always uses SOAP encoding style >>>>>> --------------------------------------------- >>>>>> >>>>>> Key: WSIF-85 >>>>>> URL: http://issues.apache.org/jira/browse/WSIF-85 >>>>>> Project: Axis-WSIF >>>>>> Type: Bug >>>>>> Components: Basic Architecture Versions: current >>>>>> (nightly), 2.0 Environment: Windows XP SP2 + Sun JDK 1.4.2 >>>>>> Reporter: Jeff MAURY >>>>>> Fix For: current (nightly) >>>>>> >>>>>> >>>>>> When accessing a literal RPC based we service, WSIF, when using >>>>>> the Axis provider, always use the SOAP encoding style. This lead >>>>>> to error when running against Axis for example >>>>>> >>>>>> >>>> >>> >>> >> >