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

Sagara Gunathunga  commented on AXIS2-5374:
-------------------------------------------


Once the following setting available on axis2.xml above doingREST is set to 
true and provide desired functionalities too.

 <parameter name="enableREST">true</parameter>


But still I don't think above solution is a widely acceptable solution.

1.) Above doingREST flag is checked and set within the HTTP module under 
HTTPTransportUtils#initializeMessageContext() method. I haven't check other 
transports yet but IMO this check should not belong to a specific transport 
implementation. In my POV when writing a new transport it should not expect to 
anticipate  REST and SOAP messages by the transport implementation.

2.) "enableREST" is a kind of a hidden setting and "disableREST" setting also 
there, having two settings for same or slightly different features are not a 
good design. For the moment it's required to have following two settings.

    <parameter name="disableREST" >false</parameter>
    <parameter name="enableREST">true</parameter>

3.) HTTPTransportUtils#initializeMessageContext() method facilitate for REST 
invocation by changing "text/xml" content type into "application/xml" content 
type when the conditions are met. But the better approach would be perform REST 
invocation while keeping "text/xml" content type as it is.

4.) As a side effect of 3.)  REST invocation always returns response messages 
with "application/xml" content type ignoring original content type of the 
request message. 
                
> Axis2 always assume "text/xml" as SOAP 1.1 content  
> ----------------------------------------------------
>
>                 Key: AXIS2-5374
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5374
>             Project: Axis2
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.5.6, 1.6.2
>            Reporter: Sagara Gunathunga 
>            Assignee: Sagara Gunathunga 
>            Priority: Critical
>
> Axis2 REST guide contains following text
> "if the content type is text/xml and if the SOAPAction Header is missing, 
> then the message is treated as a RESTful Message, if not it is treated as a 
> usual SOAP Message." 
> In summery
> content type - text/xml + SOAPAction present          =>   SOAP 1.1 
> content type - text/xml + NO SOAPAction present    =>   POX (REST)
> In contrast Axis2 never implemented above logic and always consider text/xml 
> as SOAP 1.1.  This issue can be solved by adding a condition to 
> TransportUtils#getMessageFormatter() so that it will check "SOAPAction" 
> header in addition to "text/xml" content type.
> Before I implement above solution I like see any objection from users and 
> developers. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org
For additional commands, e-mail: java-dev-h...@axis.apache.org

Reply via email to