Hi Aki,
Yes, the response should be something the client is expecting - but the
problem is that that response is not part of the MakeConnect operation
definition.
Like WS-RM and many other WS-* technologies, WS-MakeConnection defines a
service that resides at the same endpoint address as a user service. In
the WS-RM code, this situation is handled by defining the added service
using the same constructs as a normal CXF service - a ServiceInfo, an
InterfaceInfo linked to the ServiceInfo, an OperationInfo for each
operation, and MessageInfo and MessagePartInfo for each message. But for
WS-MakeConnection I don't think I can use this construct because there's
no set definition for the response message - even the response element
name is different, since it's just whatever message needs to be
returned. If I try creating a definition without setting a response, it
gets handled as a one-way operation and the response message I set in
the MakeConnection request processing is ignored.
But I suspect that just substituting the message I've previously queued
up for the response is not even the correct approach, anyway. I need to
instead somehow take over the back channel from the request and use that
for sending the saved message, implementing all the processing that
should be done as per the message's interceptor chain (including
security processing). I've been trying to figure out how to do that, but
I'm pretty much lost.
Dan, can you offer any suggestions on this?
Thanks,
- Dennis
On 11/17/2011 12:34 PM, Aki Yoshida wrote:
Hi Dennis,
The response to the MakeConnection request may be arbitrary, but the
client that wants to initiate a particular MakeConnection request
might know what response to expect?
I haven't thought about it and maybe I am missing the details.
Regards, aki
2011/11/16 Dennis Sosnoski<[email protected]>:
I'm having trouble implementing the WS-MakeConnection MakeConnection
operation, and I'm hoping somebody can give me some pointers. The problem is
that even though this looks like a SOAP operation, it really is not - the
response can be anything that's waiting for the endpoint, with no predefined
element or schema type. If I configure this using
Service/ServiceInfo/OperationInfo/etc., as we do for other WS-* protocol
endpoints, it looks like I have to make it a oneway operation (since the
response can be anything) - but if I then set a response message, it'll be
ignored.
What I want to do is to pop a message off an internal queue for the address
and make that the response. Any pointers on how I can make this happen?
Thanks,
- Dennis