The solution of Dan did the trick...
I implemented the following interceptor:
public class SetReplyToSOAPHeaderInInterceptor extends AbstractSoapInterceptor {
public SetReplyToSOAPHeaderInInterceptor() {
super(Phase.USER_PROTOCOL);
}
@Override
public void handleMessage(SoapMessage message) throws Fault {
AddressingProperties ap = ContextUtils.retrieveMAPs(message,
true, false);
EndpointReferenceType epr = new EndpointReferenceType();
AttributedURIType aut = new AttributedURIType();
aut.setValue("http://www.w3.org/2005/08/addressing/anonymous");
epr.setAddress(aut);
ap.setReplyTo(epr);
}
}
2012/6/26 Aki Yoshida <[email protected]>:
> Hi Marco,
>
> okay. In certain cases, one can use CXF's transform feature to perform
> this kind of message modification. In your particular case, if your
> inbound message has only one <Address> tag. (that would be the case if
> you have only <ReplyTo> and no other address related fields), you can
> use the transform feature's replace mode to replace the content of
> this Address element to the anonymous target (e.g.,
> http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous or
> whatever its variant of that addressing namespace).
>
> See
> http://cxf.apache.org/docs/transformationfeature.html#TransformationFeature-Replacingtextcontent
>
> The current limitation of the transform feature is that you can't use
> a path notation to pick a node in a specific path. This is the reason
> why this feature will help you only if your message has only one
> Address element that can be matched with the current one-node syntax.
>
> If this is not the case, you have to write your own interceptor, as
> Dan described.
>
> regards, aki
>
> 2012/6/25 Marco Pas <[email protected]>:
>> Hi Aki,
>>
>> Thanks for your reply, the clients is sending the ws addressing
>> property in the wrong way. It is build expecting to get synchronous
>> feedback, but it send a replyTo field filled with content making the
>> call asynchronous. So the HTTP 202 is returned.
>> So i was looking for ways on skipping the HTTP 202, but it seems that
>> if i modifing the replyto header field should make it ok. Looking for
>> a way to modify the replyTo property and make it synchronous, whatever
>> the client is sending.
>> I am aware that this is a rather strange solution and we should fix
>> the client, but that is not in my reach to do so.
>>
>> Grtz
>>
>> 2012/6/25 Aki Yoshida <[email protected]>:
>>> Hi Marco,
>>> Is your client expecting some specific response message in the http
>>> response?
>>>
>>> The HTTP 202 response code is used for the HTTP response for a oneway
>>> service call that returns no content or a request-response service
>>> call, where the real response is configured to be sent back to another
>>> port.
>>>
>>> I am not sure about your scenario. Is your client a oneway service
>>> client that can't handle the HTTP 202 and expects the HTTP 200 with an
>>> empty content or an empty SOAP envelope? Or it is a request-response
>>> service client?
>>>
>>> regards, aki
>>>
>>> 2012/6/25 Marco Pas <[email protected]>:
>>>> Hi there, i am looking for ways to skip the HTTP 202 reponse send back
>>>> by CXF when using WS Addressing.
>>>> We need to support clients that are not capable of handling the HTTP
>>>> 202 response. The operate in a request-response mode and not
>>>> are not able to handle the HTTP 202 returned by CXF.
>>>>
>>>> Is there any way to skip the HTTP 202 reponse ?
>>>>
>>>> /Marco