You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "sylvain.michel@msg.gouv.qc.ca (JIRA)" <ji...@apache.org> on 2009/07/28 14:43:14 UTC

[jira] Commented: (AXIS2-4115) Incorrect wsaAction has embedded double quotes in header

    [ https://issues.apache.org/jira/browse/AXIS2-4115?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12736051#action_12736051 ] 

sylvain.michel@msg.gouv.qc.ca commented on AXIS2-4115:
------------------------------------------------------

I am experiencing the exact same problem. Did you find a workaround ? Thank's

Quoted from: 
http://www.nabble.com/-jira--Created%3A-%28AXIS2-4115%29-Incorrect-wsaAction-has-embedded-double-quotes-in-header-tp20273156p20384548.html



> Incorrect wsaAction has embedded double quotes in header
> --------------------------------------------------------
>
>                 Key: AXIS2-4115
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4115
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: Addressing
>    Affects Versions: 1.4.1
>         Environment: Windows XP Pro SP3
> NetBeans 6.5 RC2
>            Reporter: Alexis Humphreys
>            Priority: Minor
>
> I am using NetBeans (6.5 RC2 but earlier versions give same problem) and invoking web service from a BPEL process. I am using the included Stock Quote example service included as part of Axis2 for my testing. When invoking the service, I get an exception:
> [WARN] triggerActionMismatchFault: messageContext: [MessageContext: logID=urn:uuid:518E4F32694CC6E6CA1225402791676] soapAction=urn:getPrice wsaAction="urn:getPrice"
> [ERROR] A header representing a Message Addressing Property is not valid and the message cannot be processed
> org.apache.axis2.AxisFault: A header representing a Message Addressing Property is not valid and the message cannot be processed
> 	at org.apache.axis2.addressing.AddressingFaultsHelper.triggerAddressingFault(AddressingFaultsHelper.java:373)
> 	at org.apache.axis2.addressing.AddressingFaultsHelper.triggerActionMismatchFault(AddressingFaultsHelper.java:222)
> 	at org.apache.axis2.handlers.addressing.AddressingInHandler.extractActionInformation(AddressingInHandler.java:533)
> 	at org.apache.axis2.handlers.addressing.AddressingInHandler.extractAddressingInformation(AddressingInHandler.java:239)
> 	at org.apache.axis2.handlers.addressing.AddressingInHandler.invoke(AddressingInHandler.java:152)
> 	at org.apache.axis2.engine.Phase.invoke(Phase.java:317)
> 	at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:264)
> 	at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:163)
> 	at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
> 	at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:133)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>        etc.
> The relevant portion of the WSDL is:
>     <wsdl:portType name="StockQuoteServicePortType">
>         <wsdl:operation name="getPrice">
>             <wsdl:input message="axis2:getPriceRequest" wsaw:Action="urn:getPrice"/>
>             <wsdl:output message="axis2:getPriceResponse" wsaw:Action="urn:getPriceResponse"/>
>         </wsdl:operation>
>         <wsdl:operation name="update">
>             <wsdl:input message="axis2:updateRequest" wsaw:Action="urn:update"/>
>         </wsdl:operation>
>     </wsdl:portType>
>     <wsdl:binding name="StockQuoteServiceSoap11Binding" type="axis2:StockQuoteServicePortType">
>         <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>        
>         <wsdl:operation name="getPrice">
>             <soap:operation soapAction="urn:getPrice" style="document"/>
>             <wsdl:input>
>                 <soap:body use="literal"/>
>             </wsdl:input>
>             <wsdl:output>
>                 <soap:body use="literal"/>
>             </wsdl:output>
>         </wsdl:operation>
>         <wsdl:operation name="update">
>             <soap:operation soapAction="urn:update" style="document"/>
>             <wsdl:input>
>                 <soap:body use="literal"/>
>             </wsdl:input>
>         </wsdl:operation>
>     </wsdl:binding>
> As you can see, the "getPrice" operation specifies a soapAction of "urn:getPrice". The exception complains that the soapAction is not same as wsaAction. Indeed the wsaAction has double quotes around it, while soapAction does not.
> Note that regardless of the wsaw:action value in the WSDL, the wsaAction is always the soapAction but enclosed in double quotes.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


RE: [jira] Commented: (AXIS2-4115) Incorrect wsaAction has embedded double quotes in header

Posted by Martin Gainty <mg...@hotmail.com>.
as you can see the equality of soap:action and wsaAction are handled in the
org.apache.axis2.handlers.addressing.AddresingInHandler
 
comme vous pouvez voir l'égalité du savon : l'action et le wsaAction
sont manipulés dans
l'org.apache.axis2.handlers.addressing.AddresingInHandler

//Nous supposent que n'importe quelle action qui existe déjà dans le contexte de message doit être
    
//soapaction. Nous comparons cette action à l'action de WS-Adressage, et s'ils sont
    
//different nous jetons un défaut.


    private void extractActionInformation(SOAPHeaderBlock soapHeaderBlock,
                                          MessageContext messageContext)
            throws AxisFault {
        Options messageContextOptions = messageContext.getOptions();
        String soapAction = messageContextOptions.getAction();
        String wsaAction = soapHeaderBlock.getText();

        if (LoggingControl.debugLoggingAllowed && log.isTraceEnabled()) {
            log.trace("extractActionInformation: soapAction='" + soapAction + "' wsa:Action='" +
                      wsaAction + "'");
        }

//Le besoin de valider que le contenu du wsa : L'en-tête d'action n'est pas nul ou whitespace


        if ((wsaAction == null) || "".equals(wsaAction.trim())) {
            AddressingFaultsHelper.triggerActionNotSupportedFault(messageContext, wsaAction);
        }

// le contrôle d'isServerSide est parce que l'objet fondamental d'options est
        
// a partagé entre la demande et la réponse MessageContexts pour la synchro
        invocations de 
//. Si le soapAction est placé en partance et un wsa : L'action est
        
// a reçu sur la réponse qu'ils différeront (parce qu'il y a non
        En-tête de 
// SOAPAction sur une réponse de HTTP). Dans ce cas-ci nous ne devrions pas
        contrôle de 
// qui soapAction==wsa : Action




        if (soapAction != null && !"".equals(soapAction) && messageContext.isServerSide()) 
       {
            if (!soapAction.equals(wsaAction)) {
                AddressingFaultsHelper.triggerActionMismatchFault(messageContext, soapAction, wsaAction);
            }
        } else {
            messageContextOptions.setAction(wsaAction);
        }

        ArrayList attributes = extractAttributesFromSOAPHeaderBlock(soapHeaderBlock);
        if (attributes != null) {
            messageContext.setProperty(AddressingConstants.ACTION_ATTRIBUTES, attributes);
        }

        soapHeaderBlock.setProcessed();
    }

fait cette adresse la situation que vous voyez?
Martin 
______________________________________________ 
Note de déni et de confidentialité
Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le destinataire prévu, nous te demandons avec bonté que pour satisfaire informez l'expéditeur. N'importe quelle diffusion non autorisée ou la copie de ceci est interdite. Ce message sert à l'information seulement et n'aura pas n'importe quel effet légalement obligatoire. Étant donné que les email peuvent facilement être sujets à la manipulation, nous ne pouvons accepter aucune responsabilité pour le contenu fourni.




> Date: Tue, 28 Jul 2009 05:43:14 -0700
> From: jira@apache.org
> To: axis-dev@ws.apache.org
> Subject: [jira] Commented: (AXIS2-4115) Incorrect wsaAction has embedded double quotes in header
> 
> 
>     [ https://issues.apache.org/jira/browse/AXIS2-4115?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12736051#action_12736051 ] 
> 
> sylvain.michel@msg.gouv.qc.ca commented on AXIS2-4115:
> ------------------------------------------------------
> 
> I am experiencing the exact same problem. Did you find a workaround ? Thank's
> 
> Quoted from: 
> http://www.nabble.com/-jira--Created%3A-%28AXIS2-4115%29-Incorrect-wsaAction-has-embedded-double-quotes-in-header-tp20273156p20384548.html
> 
> 
> 
> > Incorrect wsaAction has embedded double quotes in header
> > --------------------------------------------------------
> >
> >                 Key: AXIS2-4115
> >                 URL: https://issues.apache.org/jira/browse/AXIS2-4115
> >             Project: Axis 2.0 (Axis2)
> >          Issue Type: Bug
> >          Components: Addressing
> >    Affects Versions: 1.4.1
> >         Environment: Windows XP Pro SP3
> > NetBeans 6.5 RC2
> >            Reporter: Alexis Humphreys
> >            Priority: Minor
> >
> > I am using NetBeans (6.5 RC2 but earlier versions give same problem) and invoking web service from a BPEL process. I am using the included Stock Quote example service included as part of Axis2 for my testing. When invoking the service, I get an exception:
> > [WARN] triggerActionMismatchFault: messageContext: [MessageContext: logID=urn:uuid:518E4F32694CC6E6CA1225402791676] soapAction=urn:getPrice wsaAction="urn:getPrice"
> > [ERROR] A header representing a Message Addressing Property is not valid and the message cannot be processed
> > org.apache.axis2.AxisFault: A header representing a Message Addressing Property is not valid and the message cannot be processed
> > 	at org.apache.axis2.addressing.AddressingFaultsHelper.triggerAddressingFault(AddressingFaultsHelper.java:373)
> > 	at org.apache.axis2.addressing.AddressingFaultsHelper.triggerActionMismatchFault(AddressingFaultsHelper.java:222)
> > 	at org.apache.axis2.handlers.addressing.AddressingInHandler.extractActionInformation(AddressingInHandler.java:533)
> > 	at org.apache.axis2.handlers.addressing.AddressingInHandler.extractAddressingInformation(AddressingInHandler.java:239)
> > 	at org.apache.axis2.handlers.addressing.AddressingInHandler.invoke(AddressingInHandler.java:152)
> > 	at org.apache.axis2.engine.Phase.invoke(Phase.java:317)
> > 	at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:264)
> > 	at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:163)
> > 	at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
> > 	at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:133)
> > 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
> >        etc.
> > The relevant portion of the WSDL is:
> >     <wsdl:portType name="StockQuoteServicePortType">
> >         <wsdl:operation name="getPrice">
> >             <wsdl:input message="axis2:getPriceRequest" wsaw:Action="urn:getPrice"/>
> >             <wsdl:output message="axis2:getPriceResponse" wsaw:Action="urn:getPriceResponse"/>
> >         </wsdl:operation>
> >         <wsdl:operation name="update">
> >             <wsdl:input message="axis2:updateRequest" wsaw:Action="urn:update"/>
> >         </wsdl:operation>
> >     </wsdl:portType>
> >     <wsdl:binding name="StockQuoteServiceSoap11Binding" type="axis2:StockQuoteServicePortType">
> >         <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>        
> >         <wsdl:operation name="getPrice">
> >             <soap:operation soapAction="urn:getPrice" style="document"/>
> >             <wsdl:input>
> >                 <soap:body use="literal"/>
> >             </wsdl:input>
> >             <wsdl:output>
> >                 <soap:body use="literal"/>
> >             </wsdl:output>
> >         </wsdl:operation>
> >         <wsdl:operation name="update">
> >             <soap:operation soapAction="urn:update" style="document"/>
> >             <wsdl:input>
> >                 <soap:body use="literal"/>
> >             </wsdl:input>
> >         </wsdl:operation>
> >     </wsdl:binding>
> > As you can see, the "getPrice" operation specifies a soapAction of "urn:getPrice". The exception complains that the soapAction is not same as wsaAction. Indeed the wsaAction has double quotes around it, while soapAction does not.
> > Note that regardless of the wsaw:action value in the WSDL, the wsaAction is always the soapAction but enclosed in double quotes.
> 
> -- 
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
> 

_________________________________________________________________
Windows Live™ Hotmail®: Search, add, and share the web’s latest sports videos. Check it out.
http://www.windowslive.com/Online/Hotmail/Campaign/QuickAdd?ocid=TXT_TAGLM_WL_QA_HM_sports_videos_072009&cat=sports