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

Sathwik Bantwal Premakumar commented on ODE-1024:
-------------------------------------------------

Note: WSDL 1.1 spec http binding only talks about simple elements in the 
message part for processing using urlEncoded or urlReplacement. *Complex types 
are not supported*.
Looking at the example in the spec https://www.w3.org/TR/wsdl#_http-e. The 
message part name is used for the replacement in the http operation location.
{noformat}
    <message name="m1">
        <part name="part1" type="xsd:string"/>
        <part name="part2" type="xsd:int"/>
        <part name="part3" type="xsd:string"/>
    </message>
   <binding name="b1" type="pt1">
        <http:binding verb="GET"/>
        <operation name="o1">
           <http:operation location="o1/A(part1)B(part2)/(part3)"/>
           <input>
               <http:urlReplacement/>
           </input>
         ..........
     </binding>

{noformat}


There are multiple problems in the attached process HelloWorld2.zip to this 
JIRA, it doesn't use the part name in the http operation location at all for 
any replacement to happen.

{noformat}

    <xs:element name="HelloBack">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="helloMsg" 
nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
   </xs:element>

  <wsdl:message name="HelloBackRequest">
        <wsdl:part name="parameters" element="ns:HelloBack"/>
  </wsdl:message>

<wsdl:binding name="HelloWorldWSHttpBinding" type="ns:HelloWorldWSPortType">
        <http:binding verb="GET"/>
       <wsdl:operation name="HelloBack">
            <http:operation location="HelloBack"/>
{noformat}

Henceforth the endpoint URI will have the HelloBack appended as follows 
http://localhost:8099/axis2/services/HelloWorldWS.HelloWorldWSHttpEndpoint/HelloBack

Inorder to make this work one needs to do these changes

1. Define a simple type element

{noformat}
<xs:element name="helloMsg" minOccurs="0" nillable="true" type="xs:string" />
{noformat}

2. and define the message part as follows

{noformat}
<wsdl:message name="HelloBackRequest">
        <wsdl:part name="helloMsg" element="ns:helloMsg"/>
</wsdl:message>

{noformat}

3. OR Define the message part as simple type
{noformat}
<wsdl:message name="HelloBackRequest">
        <wsdl:part name="helloMsg" type="xs:string"/>
</wsdl:message>

{noformat}

4. urlReplacement

{noformat}
<http:operation location="HelloBack/{helloMsg}"/>
{noformat}


> Operation input isn't passed for [HTTP binding, GET verb]
> ---------------------------------------------------------
>
>                 Key: ODE-1024
>                 URL: https://issues.apache.org/jira/browse/ODE-1024
>             Project: ODE
>          Issue Type: Bug
>          Components: BPEL Runtime
>    Affects Versions: 1.3.6
>         Environment: Win7 x64, two JRE were tested: 8.0.25 and 7.0.71
>            Reporter: Vitaliy Tkachenko
>            Assignee: Tammo van Lessen
>             Fix For: 1.3.8, 1.4
>
>         Attachments: HelloWorld2.zip, HelloWorldWS.aar, HelloWorldWS.zip, 
> hwwsExecute.xml
>
>
> ODE doesn't pass parameters in the request string using GET HTTP method (verb 
> GET, HTTP binding). Attaching the Axis2 service aar with sources to get up 
> the service (built with Java 7.0.71 - use it to start Tomcat with Axis2), the 
> ODE process zip to access it and SOAP request to execute the ODE process. 
> TCPMon also was used to accept on the port 8099 and pass through to the port 
> 8080 of the real Tomcat service to check requests content.
> Actual response from the ODE process is "I'd say Hello to the one who said 
> 'null'!". Expected response is: "I'd say Hello to the one who said 'hi from 
> BPEL'!".
> If you update the deploy.xml to use the HelloWorldWSHttpSoap11Endpoint 
> endpoint the process works out successfully returning the expected response.
> Taking a look at requests in TCPMon we see the 
> "http://localhost:8099/axis2/services/HelloWorldWS.HelloWorldWSHttpEndpoint/HelloBack";
>  request address for the given example using the urlReplacement input 
> encoding. If you change it to the "urlEncoded" then the request string will 
> be 
> "http://localhost:8099/axis2/services/HelloWorldWS.HelloWorldWSHttpEndpoint/HelloBack?";.
> Thus nither "urlEncoded" nor "urlReplacement" GET encodings do not work out 
> appropriately in the ODE.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to