On Tuesday, April 24, 2012 11:24:43 AM Hervé BARRAULT wrote:
> 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

Well, there is the solution:  upgrade to 2.5.3 or 2.6.0.


For some information about this, see:

http://cxf.547215.n5.nabble.com/Adjusting-WS-RM-systests-for-http-202-tt4756114.html

and:

https://issues.apache.org/jira/browse/CXF-3768

We had a bunch of discussions around the behavior change and decided it really 
could only go to 2.5.x at the time due to it potentially breaking existing 
applications.


Dan




 
> 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/Noti
> > > >>       fy
> > > >>     
> > > >>     </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(MustUnderstandInter
> > > >> cep
> > > >> tor. java:225) at
> > 
> > org.apache.cxf.binding.soap.interceptor.MustUnderstandInterceptor$Ultim
> > 
> > > >> ate
> > > >> ReceiverMustUnderstandInterceptor.handleMessage(MustUnderstandInter
> > > >> cep
> > > >> 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</Addres
> > > >>          s>
> > > >>       
> > > >>       </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
-- 
Daniel Kulp
[email protected] - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com

Reply via email to