Keith,

Can it wait till we actually decide to do JAX-RS? Why do we need it
now in other words, is there an effort to enhance WSDL2Java more to
handle these situations?

thanks,
dims

On Wed, Oct 29, 2008 at 10:07 PM, keith chapman <[EMAIL PROTECTED]> wrote:
> Let me clarify the need for multiple MR's. If we think of codegen, as of now
> Axis2 generates the serverside code based on the portType of a WSDL (It does
> not take the binding into consideration). Imaging a user has a WSDL such
> that the response SOAP message should have a custom SOAP header when the
> request is SOAP 1.1 or 1.2 and a custom http header when the request is
> REST.
>
> Now axis2 codegen cannot handle the above scenario.
>
> Now the only way to do this as of now is to write a module and then do the
> checks within that module and add these headers, but these are really
> binding details of a service and the AxisBinding hierarchy contains these
> details and it should have been the responsibility of the MessageReceiver to
> do this. That means we have a MR per binding or a single MR with a lot of if
> conditions (I prefer having a MR per binding).
>
> This is where the need for multiple MR's come in.
>
> Glen/Deepal I agree that taking parts off the path/query/body and binding
> the SOAP infoset is part of the builder but imaging this situation. Think of
> having JAX-RS support in Axis2. JAX-RS allows users to annotate a parameter
> saying that its a http header. Now the cleanest way to handle this is to
> have multiple MR's, where the MR is fully aware of how to get this parameter
> that the service needs. This cannot be done at the builder level cause the
> builders work according to the schema of an incoming message (the fact that
> this parameter is an http header is not described in schema, but it is
> available in the axisBinding hierarchy).
>
> Do you see its need now?
>
> Thanks,
> Keith.
>
>
> On Thu, Oct 30, 2008 at 12:26 AM, Glen Daniels <[EMAIL PROTECTED]>
> wrote:
>>
>> The job of the MessageReceiver is to take a "normalized" message (i.e.
>> something that looks like SOAP) and "do some valid work" with it - so this
>> might mean mapping to a Java method and databinding, or calling out to a
>> piece of hardware, or handing the contents of the body to a cached instance
>> of a particular class.  It's the job of the earlier parts of the system -
>> the transport code, the Builder, etc - to map the real wire message to the
>> normalized form.
>>
>> If we're using the MessageReceiver to do things like pull data from query
>> parameters, then I put forth that we've designed that system incorrectly,
>> and should fix it.  Some earlier chunk of code should do this.
>>
>> Thanks,
>> --Glen
>>
>> Sanjiva Weerawarana wrote:
>>>
>>> Deepal, the REST "deserialization" requires one to know the binding to
>>> know where to pull stuff from (query params, payload etc.). See WSDL 2.0
>>> HTTP binding to understand how that works.
>>>
>>> So that has to happen post-dispatch.
>>>
>>> Sanjiva.
>>>
>>> Deepal jayasinghe wrote:
>>>>>
>>>>> It is possible that a single POJO (for example) can offer both a
>>>>> RESTful interface and a normal SOAP interface. In fact, that can
>>>>> happen by having both JAX-RS and JAX-WS annotations on the same pojo.
>>>>
>>>> Well even without having those annotation we can expose a POJO as a SOAP
>>>> and REST. I mean REST and SOAP just the wire format , internally what
>>>> happen is everything get converted into SOAP and at the end POJO class
>>>> receive a SOAP message.
>>>>>
>>>>> We currently can't handle that because the message receiver is
>>>>> associated with the AxisOperation and not BindingOperation. IMO that
>>>>> was a mistake ..
>>>>
>>>> Well no , because BindingOperation introduced after the AxisOperation :)
>>>> .
>>>>>
>>>>> So what we talked about was to introduce the ability to set the MR on
>>>>> the binding operation but to keep the ability to set it on the
>>>>> operation itself. That allows us to be totally backwards compatible
>>>>> but it solve the problem for wanting both a RESTful and a WS-* binding
>>>>> for the same operation for example.
>>>>
>>>> I can not still understand why we need new MR , because at the core what
>>>> we use is SOAP not anything else , and at the end I mean at the
>>>> Transport sender level we serialize that to REST or SOAP. Which is done
>>>> by Message formatters.
>>>>
>>>> -Deepal
>>>>>
>>>>> Thoughts?
>>>>>
>>>>> Sanjiva.
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>
>
>
> --
> Keith Chapman
> Senior Software Engineer
> WSO2 Inc.
> Oxygenating the Web Service Platform.
> http://wso2.org/
>
> blog: http://www.keith-chapman.org
>



-- 
Davanum Srinivas :: http://davanum.wordpress.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to