Hi,

Sorry if my question was a bit confuse.

When i had the log it was on the server side [i forgot to precise it] (I
never received the error on the client) which is one of the wanted behavior.

I only want the 202 HTTP code with NO content (which is for me the
principle of inOnly but I am perhaps wrong).
I don't know how other client implementations will react if my server reply
some unexpected content (and it adds some useless data on network).

So for me, the 2.5.2 implementation is the one I expect (not
2.4.3-fuse-01-02 and previous) .

2.5.2 : only 202 HTTP code with no content.<= IMHO : OK

2.4.3-fuse-01-02 and previous versions : (soap Header with WS-Addressing
data in any case) <= IMHO : NOT OK

I am not familiar with WS-Addressing so I could be wrong and the message
used for my testing was given to me.

If you say me that I should not use soapenv:mustUnderstand="1" with inOnly
(or even WS addressing), I will see if the client can avoid sending it. But
it seems that the behavior is the same without the mustUnderstand.

For Information, my WSDL contains both inOnly and Request/Response
operation in the same port.

I hope, it will be less confuse for you.

The question of robust InOnly is also an interesting question (we are using
a request/response for a wanted robust inOnly) but I think it can be a
dedicated debate.

Regards
Hervé


On Mon, Apr 23, 2012 at 11:01 PM, Daniel Kulp <[email protected]> wrote:

> On Monday, April 23, 2012 10:50:05 PM Aki Yoshida wrote:
> > 2012/4/23 Daniel Kulp <[email protected]>:
> > > This is "proper" behavior as per spec.   In a one way, the client just
> > > knows that the message was posted, that's it.  As an example, if using
> > > JMS, the client just posts the message to the queue and returns.  There
> > > is absolutely no way to get any information about whether the request
> > > was able to be parsed or processed back from the server.
> > >
> > > In 2.6.0, Aki did add a "robust in-only" mode (set the
> > > "org.apache.cxf.oneway.robust" property on the endpoint to true) which
> > > would allow returning faults to the client.  This is against spec and
> > > transports like JMS I don't think can handle it (not really sure,
> > > Aki?), but but it may work for you.
> >
> > A good question. I don't know. Is the JMS endpoint using the fault
> > observer? If it uses the fault observer, it could react to this
> > situation.
>
> Well, I assume there is a fault observer on the server side, the issue is
> on
> the client side.   For a one way, the client would send the message to the
> JMS queue and then continue on it's merry way.   There wouldn't be anything
> setup to listen for a fault.   Honestly, I'm not really sure what would be
> a
> proper thing to do in this case.   If the client treats the "robust oneway"
> calls as a two way and sets up a listener, then the server would have to
> send back a response of some sort.  I guess a "jms fake 202" could be sent
> or something.   But it's really getting into proprietary things at this
> point.   I guess I should go back to the SOAP/JMS spec and see if it
> addresses the WSDL 2 robust cases at all.
>
> > But I am now confused with what Hervé wants. Should the soap fault be
> > returned or suppressed? I thought he wanted it to be suppressed. If he
> > wanted it to be returned, yes, he could use the robust property.
>
> I thought it WAS suppressed (and only the 202 is heading back) but he
> wanted
> the mustunderstand fault to go back to the client.   I could likely be
> confused as well.
>
> Dan
>
>
>
> >
> > regards, aki
> >
> > > Dan
> > >
> > > On Tuesday, April 17, 2012 03:55:55 PM Hervé BARRAULT wrote:
> > >> Hi,
> > >> I'm trying to use CXF with both WS-Addressing and One Way.
> > >>
> > >> My client send a message (not with CXF) with the following SOAP
> Header:
> > >>   <soapenv:Header>
> > >> <wsa:Action soapenv:mustUnderstand="1">
> > >>       http://docs.oasis-open.org/wsn/bw-2/NotificationConsumer/Notify
> > >>     </wsa:Action>
> > >>   </soapenv:Header>
> > >>
> > >> In my logs, I had :
> > >> 14:10:31,210 | WARN  | ault-workqueue-2 |
> > >> PhaseInterceptorChain                                            |
> > >> org.apache.cxf.common.logging.LogUtils                            369
> |
> > >>  - -  | Interceptor for {
> > >>
> http://example.com/test1}StatusBrokerService#{http://docs.oasis-open.or
> > >> g/w sn/brw-2}Notifyhas thrown exception, unwinding now
> > >> org.apache.cxf.binding.soap.SoapFault: MustUnderstand headers: [{
> > >> http://www.w3.org/2005/08/addressing}Action] are not understood.
> > >>     at
> > >>
> org.apache.cxf.binding.soap.interceptor.MustUnderstandInterceptor$Ultim
> > >> ate
> > >> ReceiverMustUnderstandInterceptor.handleMessage(MustUnderstandIntercep
> > >> tor. java:225) at
> > >>
> org.apache.cxf.binding.soap.interceptor.MustUnderstandInterceptor$Ultim
> > >> ate
> > >> ReceiverMustUnderstandInterceptor.handleMessage(MustUnderstandIntercep
> > >> tor. java:199) at
> > >>
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptor
> > >> Cha in.java:243) at
> > >>
> org.apache.cxf.phase.PhaseInterceptorChain.resume(PhaseInterceptorChain
> > >> .ja va:218) at
> > >>
> org.apache.cxf.interceptor.OneWayProcessorInterceptor$1.run(OneWayProce
> > >> sso rInterceptor.java:105) at
> > >>
> org.apache.cxf.workqueue.AutomaticWorkQueueImpl$2.run(AutomaticWorkQueu
> > >> eIm pl.java:332) at
> > >>
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecut
> > >> or. java:886) at
> > >>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.j
> > >> ava>>
> > >> :908) at java.lang.Thread.run(Thread.java:662)
> > >>
> > >> And there was a classical 202/Accepted for a One Way message (fault
> not
> > >> returned as it is one way).
> > >>
> > >>
> > >>
> > >> So, I found an interesting topics which says, enable the ws-addressing
> > >> feature (to avoid this fault) :
> > >> I added the feature
> > >> <cxf:features>
> > >>       <wsa:addressing/>
> > >> </cxf:features>
> > >>
> > >> Now when i receive a message, an answer is automatically sent (which i
> > >> guess is no more compliant with the One Way):
> > >> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
> ">
> > >>    <soap:Header>
> > >>       <MessageID xmlns="http://www.w3.org/2005/08/addressing
> > >> ">urn:uuid:67074ee9-455b-4488-b48d-e2a9b16a7c1b</MessageID>
> > >>       <To xmlns="http://www.w3.org/2005/08/addressing";>
> > >> http://www.w3.org/2005/08/addressing/anonymous</To>
> > >>       <ReplyTo xmlns="http://www.w3.org/2005/08/addressing";>
> > >>          <Address>http://www.w3.org/2005/08/addressing/none</Address>
> > >>       </ReplyTo>
> > >>    </soap:Header>
> > >>    <soap:Body/>
> > >> </soap:Envelope>
> > >>
> > >> I know, i use an old version of CXF : 2.2.12-fuse-00-00 but i have not
> > >> seen a related JIRA (and a post said that 2.4.0 had the same
> behavior).
> > >> (I am using also the PAYLOAD mode)
> > >>
> > >> I am doing it the right way ?
> > >> Is this behavior normal ?
> > >>
> > >> Thanks for answers
> > >> Regards
> > >> Hervé
> > >
> > > --
> > > Daniel Kulp
> > > [email protected] - http://dankulp.com/blog
> > > Talend Community Coder - http://coders.talend.com
> --
> Daniel Kulp
> [email protected] - http://dankulp.com/blog
> Talend Community Coder - http://coders.talend.com
>
>

Reply via email to