[Catalyst] Dispatching in Catalyst::Controller::SOAP::DocumentLiteralWrapped

Zbigniew Lukasiak zzbbyy at gmail.com
Fri Nov 28 10:16:21 GMT 2008


The POD for C::C::S::DLW says:

       A Document/Literal service is supposed to have one operation
per bind, as it's not techically possible
       to dispatch on the content of the Body. In fact, as the Body is
used as "literal" the dispatching should
       not even look at it, it should be based on the port that
received the request.

       RPC/Literal, on the other hand, supports the use of several
operations per bind, and the dispatching of
       this operations is based on the first and only child element of
the message body, which defines the
       operation. The arguments are set as the parts of the message in the WSDL.

       Document/Literal-Wrapped is a deviation of both, as the message
should be interpreted as Document/Lit-
       eral, but the dispatching requires an additional step of
looking at the SOAPAction HTTP header, which
       will identify the proper operation to be dispatched.

I am rather new to this SOAP affair - but according to
http://www.ibm.com/developerworks/webservices/library/ws-whichwsdl/ -
the dispaching in Document/Literal-Wrapped should be done on the first
and only child element of the message body, which defines the
operation just like in the RPC/Literal case.

Then formally you when you have a function of type A -> ( B -> C ) -
i.e. the RPC/Literal case - where the first parameter defines what
function is applied to the rest of arguments. Then you can always
uncurry it to (A, B) -> C - that is you can have a function that takes
both parameters and returns the end result.  So if you treat the
dispatching as an internal affair in the server you can always say
that the function is of the right type for Document/Literal.


-- 
Zbigniew Lukasiak
http://brudnopis.blogspot.com/
http://perlalchemy.blogspot.com/



More information about the Catalyst mailing list