You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Daniel Kulp (JIRA)" <ji...@apache.org> on 2013/10/24 20:16:14 UTC

[jira] [Resolved] (CXF-5354) faultTo address is ignored when fault is thrown

     [ https://issues.apache.org/jira/browse/CXF-5354?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp resolved CXF-5354.
------------------------------

       Resolution: Fixed
    Fix Version/s: 2.6.11
                   2.7.8
         Assignee: Daniel Kulp

This should now be fixed.   Can you give it a try when you get a chance?

> faultTo address is ignored when fault is thrown
> -----------------------------------------------
>
>                 Key: CXF-5354
>                 URL: https://issues.apache.org/jira/browse/CXF-5354
>             Project: CXF
>          Issue Type: Bug
>          Components: WS-* Components
>    Affects Versions: 2.7.7
>            Reporter: Jesse Pangburn
>            Assignee: Daniel Kulp
>             Fix For: 2.7.8, 2.6.11
>
>         Attachments: jaxws_dispatch_provider_test_faultto.zip
>
>
> I have a Provider based service and find that with WS-Addressing enabled, it doesn't handle FaultTo addresses properly.  The case I found that caused this is when I turned on Schema Validation and sent a request that doesn't match the schema, then it throws a fault but instead sends the reply to the replyTo address.  I then tried using a bogus mustUnderstand header to cause a fault to see if it was just related to the schema validation, but it has the same problem.
> Here's a sample request message to cause this (using mustUnderstand header so you don't have to setup schema validation to test):
> {code:xml}
> <?xml version="1.0"?>
> <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
>   <soap:Header>
>     <Action xmlns="http://www.w3.org/2005/08/addressing">anything</Action>
>     <MessageID xmlns="http://www.w3.org/2005/08/addressing">urn:uuid:2eae8433-d42a-4749-b053-f5b5805fe8e9</MessageID>
>     <To xmlns="http://www.w3.org/2005/08/addressing">http://localhost:9003/xdsregistryb</To>
>     <ReplyTo xmlns="http://www.w3.org/2005/08/addressing">
>       <Address>http://localhost:9003/replyBack</Address>
>     </ReplyTo>
>     <FaultTo xmlns="http://www.w3.org/2005/08/addressing">
>       <Address>http://localhost:9003/faultBack</Address>
>     </FaultTo>
>     <bogus soap:mustUnderstand="true">this junk will fault</bogus>
>   </soap:Header>
>   <soap:Body>
>     <junk/>
>   </soap:Body>
> </soap:Envelope>
> {code}
> Note the ReplyTo is http://localhost:9003/replyBack and the FaultTo is http://localhost:9003/faultBack.  When I send to my Provider service, the log file shows the response going to the replyBack url, but the To address in WS-Addressing header shows the faultBack url- so it's halfway right!  This is the case with both schema validation faults and the above example of bogus mustUnderstand header.
> Here's the Wireshark network trace (so there is no possibility of bad logging being the issue):
> {quote}
> POST /replyBack HTTP/1.1
> Content-Type: application/soap+xml; charset=UTF-8
> Accept: */*
> User-Agent: Apache CXF 2.7.7
> Cache-Control: no-cache
> Pragma: no-cache
> Host: localhost:9003
> Connection: keep-alive
> Content-Length: 706
> <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"><soap:Header><Action xmlns="http://www.w3.org/2005/08/addressing"/><MessageID xmlns="http://www.w3.org/2005/08/addressing">urn:uuid:6a5190fc-256f-428c-9e5e-8b79520bbf0c</MessageID><To xmlns="http://www.w3.org/2005/08/addressing">http://localhost:9003/faultBack</To><RelatesTo xmlns="http://www.w3.org/2005/08/addressing">urn:uuid:2eae8433-d42a-4749-b053-f5b5805fe8e9</RelatesTo></soap:Header><soap:Body><soap:Fault><soap:Code><soap:Value>soap:MustUnderstand</soap:Value></soap:Code><soap:Reason><soap:Text xml:lang="en">MustUnderstand headers: [bogus] are not understood.</soap:Text></soap:Reason></soap:Fault></soap:Body></soap:Envelope>
> {quote}
> Sorry, wiki markup is making bogus in red, not intentional.  See how the address listed at the top doesn't match the WS-Addressing To address?  With anonymous replyTo address then you get the fault back on the same synchronous request channel, and it still shows the /faultBack url in the To address.



--
This message was sent by Atlassian JIRA
(v6.1#6144)