Issue Details (XML | Word | Printable)

Key: ODE-602
Type: Improvement Improvement
Status: Open Open
Priority: Major Major
Assignee: Unassigned
Reporter: Alexis Midon
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
ODE

invocation fails if urlReplacement and form encoded used

Created: 12/May/09 11:36 PM   Updated: 12/May/09 11:36 PM
Return to search
Component/s: None
Affects Version/s: 1.3.2
Fix Version/s: Wishlist

Time Tracking:
Not Specified


 Description  « Hide
The case where urlReplacement and form encoded are used at the same time for a given operation is not supported. I'm afraid this somewhat edgecase was not considered.
As of today, application/x-www-form-urlencoded can be used with GET/DELETE and in this case all parts are encoded in the query string of the URL ; or with POST/PUT and all parts are be encoded in the entity-body.

To recap, as of today, the following operation will fail with traces below. This might be considered as an improvement/new feature.

<wsdl:binding name="restBinding" type="rest2:restInterface">
    <wsdl:operation name="POST">
      <ode:binding verb="POST"/>
      <http:operation location=""/>
      <wsdl:input>
        <http:urlReplacement/>
        <mime:content type="application/x-www-form-urlencoded" part="part1"/>
      </wsdl:input>
      <wsdl:output>
        <mime:content type="text/xml" part="response"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>

ERROR - GeronimoLog.error(108) | [Service: {http://ode/bpel/test/blog}BlogService, Port: BlogPort, Operation: doPOST] Unknown HTTP call error for ODE mex {PartnerRoleMex#hqejbhcnphr49pt1mxc8mc [PID {http://ode/bpel/unit-test}http-binding-ext-POST-3] calling org.apache.ode.bpel.epr.WSAEndpoint@18fc7ca.doPOST(...)}
java.lang.IllegalArgumentException: The content cannot be null
at org.apache.commons.httpclient.methods.StringRequestEntity.<init>(StringRequestEntity.java:97)
at org.apache.ode.axis2.httpbinding.HttpMethodConverter.prepareHttpMethod(HttpMethodConverter.java:195)
at org.apache.ode.axis2.httpbinding.HttpMethodConverter.createHttpRequest(HttpMethodConverter.java:113)
at org.apache.ode.axis2.httpbinding.HttpExternalService.invoke(HttpExternalService.java:169)
at org.apache.ode.axis2.MessageExchangeContextImpl.invokePartner(MessageExchangeContextImpl.java:52)
at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(BpelRuntimeContextImpl.java:778)
at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:100)
at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)

This can be reproduced by patching axis2-war/src/test/resources/TestHttpBindingExt_POST/Blog.wsdl
@@ -155,7 +155,7 @@
             <odex:binding verb="POST"/>
             <wsdl:input>
                 <http:urlReplacement/>
- <mime:content type="text/xml" part="comment"/>
+ <mime:content type="application/x-www-form-urlencoded" part="comment"/>
             </wsdl:input>
             <wsdl:output/

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
There are no entries against this issue.