<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">

<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>

                                <td>

                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">Community</a></h1>
                                                                </td>

                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px;  -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
    XTS tests broken in AS trunk after switch to CXF stack in 3.3.0
</h3>
<span style="margin-bottom: 10px;">
    reply from <a href="http://community.jboss.org/people/adinn">Andrew Dinn</a> in <i>JBoss Web Services CXF</i> - <a href="http://community.jboss.org/message/546743#546743">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><blockquote class="jive-quote"><p>Alessio Soldano wrote:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Let's clarify the situation a bit first then: it seems to me the problem here is that cxf does not consider the action provided in the message, which is what you'd expect, right?</p><p>CXF instead goes throught the model constructed from the wsdl and try to get the action from that. That's why it's looking at the soap binding part of ws-addressing (<a class="jive-link-external-small" href="http://www.w3.org/TR/ws-addr-wsdl/" target="_blank">http://www.w3.org/TR/ws-addr-wsdl/</a>), which defines namespace <em><a class="jive-link-external-small" href="http://www.w3.org/2006/05/addressing/wsdl" target="_blank">http://www.w3.org/2006/05/addressing/wsdl</a></em> for the Action element.</p></blockquote><p>I don't think that is what is happening here. I believe it is the endpoint annotations not the WSDL which is being used. My endpoint implemenation bean and the method which is failing are coded as follows</p><blockquote class="jive-quote"><p><span style="font-family: courier new,courier;"><span>@WebService(targetNamespace = "</span><a class="jive-link-external-small" href="http://docs.oasis-open.org/ws-tx/wscoor/2006/06" target="_blank">http://docs.oasis-open.org/ws-tx/wscoor/2006/06</a><span>", name = "ActivationPortType",</span><br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; wsdlLocation = "/WEB-INF/wsdl/wscoor-activation-binding.wsdl",<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; serviceName = "ActivationService",<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; portName = "ActivationPortType"<br/>)<br/>@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)<br/>// @EndpointConfig(configName = "Standard WSAddressing Endpoint")<br/>@HandlerChain(file="/handlers.xml")<br/>@Addressing(required=true)<br/>public class ActivationPortTypeImpl implements ActivationPortType<br/>{<br/>&#160;&#160;&#160; @Resource private WebServiceContext webServiceCtx;<br/><br/><span>&#160;&#160;&#160; @WebMethod(operationName = "CreateCoordinationContextOperation", action = "</span><a class="jive-link-external-small" href="http://docs.oasis-open.org/ws-tx/wscoor/2006/06/CreateCoordinationContext" target="_blank">http://docs.oasis-open.org/ws-tx/wscoor/2006/06/CreateCoordinationContext</a><span>")</span><br/><span>&#160;&#160;&#160; @WebResult(name = "CreateCoordinationContextResponse", targetNamespace = "</span><a class="jive-link-external-small" href="http://docs.oasis-open.org/ws-tx/wscoor/2006/06" target="_blank">http://docs.oasis-open.org/ws-tx/wscoor/2006/06</a><span>", partName = "parameters")</span><br/><span>&#160;&#160;&#160; @Action(input="</span><a class="jive-link-external-small" href="http://docs.oasis-open.org/ws-tx/wscoor/2006/06/CreateCoordinationContext" target="_blank">http://docs.oasis-open.org/ws-tx/wscoor/2006/06/CreateCoordinationContext</a><span>", output="</span><a class="jive-link-external-small" href="http://docs.oasis-open.org/ws-tx/wscoor/2006/06/CreateCoordinationContextResponse" target="_blank">http://docs.oasis-open.org/ws-tx/wscoor/2006/06/CreateCoordinationContextResponse</a><span>")</span><br/>&#160;&#160;&#160; public CreateCoordinationContextResponseType createCoordinationContextOperation(<br/><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; @WebParam(name = "CreateCoordinationContext", targetNamespace = "</span><a class="jive-link-external-small" href="http://docs.oasis-open.org/ws-tx/wscoor/2006/06" target="_blank">http://docs.oasis-open.org/ws-tx/wscoor/2006/06</a><span>", partName = "parameters")</span><br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; CreateCoordinationContextType parameters)<br/>&#160;&#160;&#160; {<br/>&#160;&#160;&#160;&#160;&#160; . . .</span></p></blockquote><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>As you can see the output response action is specified using the @Action annotation.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Now looking at the exception stack you cqan see that when MAPAggregator executes as part of the output pipeline processing it tries to obtain the action associated with the response message by calling ContextUtils.getAction(message). This calls Contextutils.getActionFromServiceModel(message,&#160; null) which obtains the outbound message info and calls Contextutils.getActionFromMessageAttributes(msgInfo). The latter makes the call to ContextUtils.getAction(msgInfo) which blows up.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Now the odd thing is that message info&#160; has an action associated with it in the extension attributes hashmap and CXF has put it there. The key for the atribute is {<a class="jive-link-external-small" href="http://www.w3.org/2005/08/addressing">http://www.w3.org/2005/08/addressing</a>}Action and the value is the one I specified in the @Action annotation. The lookup in MAPAggregator is trying to look it up using all the other possible keys (2006/05, 2007/05 etc) but not the one for the value which has been installed in the attributes map. Since this causes it to fall over when it fails to find an entry in the map I suspect the problem is that it is using the wrong key for the first test in ContextUtils.getAction(). Where it says</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><blockquote class="jive-quote"><p>Object o = ext.getExtensionAttribute(JAXWSAConstants.WSAW_ACTION_QNAME);</p></blockquote><p>I believe it should say</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><blockquote class="jive-quote"><p>Object o = ext.getExtensionAttribute(JAXWSAConstants.WSA_ACTION_QNAME);</p></blockquote><p>However, I don't see how this could ever have passed any sensible sort of QA process.</p></div>

<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
    <p style="margin: 0;">Reply to this message by <a href="http://community.jboss.org/message/546743#546743">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in JBoss Web Services CXF at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2046">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


                </td>
            </tr>
        </tbody>
    </table>

</div>

</body>
</html>