ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexis Midon <mi...@intalio.com>
Subject Re: Timed out invoking REST web service from Yahoo
Date Fri, 10 Jul 2009 23:13:47 GMT
FYI
http://svn.apache.org/viewvc?view=rev&revision=793138

On Fri, Jul 10, 2009 at 3:36 PM, Alexis Midon <midon@intalio.com> wrote:

> thanks for the patch. Next time could you please create a jira issue and
> attach the patch to it? It's for traceability and licensing reasons.
> https://issues.apache.org/jira/browse/ODE
>
> could you send your exceptions, your process and its dependencies (wsdl,
> schemas, etc)?
>
> Alexis
>
> On Fri, Jul 10, 2009 at 2:35 PM, Bill McCusker <wmccusker@parasoft.com>wrote:
>
>>   It looks like the wsdl I was provided with was missing the <mime:content
>> type="text/xml" part="post_content"/>. Adding it yielded a
>> ConcurrentModificationException. Apparently list remove is being called in a
>> for each loop over that list in WsdlUtils getHttpHeaders, attached is a
>> small patch for that. However after fixing the
>> ConcurrentModificationException the process is still failing. Attached is
>> the modified wsdl I was provided with.
>>
>> Bill McCusker
>>
>>
>> Alexis Midon wrote:
>>
>>> ODE puts all HTTP response headers in the message, so they can eventually
>>> be
>>> used by the process. So, yes, this message is correct.
>>>
>>> Assuming your assignment is right and that the service output is fine, if
>>> the part your assign is looking for is not in the message then I guess
>>> the
>>> issue is in the wsdl you use to describe the service. It looks like your
>>> wsdl is valid (no fault in the invoke), but the response body is not
>>> bound
>>> to a part.
>>> What is the content of the operation output element? could you share with
>>> us
>>> your wsdl?
>>>
>>> Here is an example of an operation binding that stores the response body
>>> in
>>> the part "post_content".
>>>
>>>
>>> <definitions ...
>>>
>>>                  xmlns:odex="
>>> http://www.apache.org/ode/type/extension/http"/>
>>>
>>>    <binding name="blogBinding" type="blogPortType">
>>>        <operation name="PUT">
>>>
>>>             <odex:binding verb="PUT" />
>>>             <http:operation location=""/>
>>>             <input>
>>>
>>>                 <http:urlReplacement/>
>>>                 <mime:content type="text/xml" part="post_content"/>
>>>
>>>                 <!-- set a standard request header from a part -->
>>>                 <odex:header name="Authorization"
>>> part="credentials_part"/>
>>>
>>>
>>>                 <!-- set a custom request header with a static value -->
>>>                 <odex:header name="MyCustomHeader" value="ode@apache.org"
>>> />
>>>
>>>
>>>             </input>
>>>             <output>
>>>                 <mime:content type="text/xml" part="post_content"/>
>>>
>>>
>>>                 <!-- set 1 response header to a part -->
>>>                 <odex:header name="Age" part="age_part"/>
>>>
>>>
>>>             </output>
>>>        </operation>
>>>    </binding>
>>> </definitions>
>>>
>>>
>>>
>>> You can check the doc for more details:
>>>
>>> http://ode.apache.org/user-guide.html#UserGuide-HTTPBindingExtensionsforRESTfulservices
>>>
>>> Alexis
>>>
>>>
>>>
>>>
>>
>> Index: utils/src/main/java/org/apache/ode/utils/wsdl/WsdlUtils.java
>> ===================================================================
>> --- utils/src/main/java/org/apache/ode/utils/wsdl/WsdlUtils.java
>>  (revision 786653)
>> +++ utils/src/main/java/org/apache/ode/utils/wsdl/WsdlUtils.java
>>  (working copy)
>> @@ -48,6 +48,7 @@
>>  import javax.xml.namespace.QName;
>>  import java.util.ArrayList;
>>  import java.util.Collection;
>> +import java.util.Iterator;
>>  import java.util.List;
>>
>>  /**
>> @@ -307,12 +308,13 @@
>>
>>     public static Collection<UnknownExtensibilityElement>
>> getHttpHeaders(List extensibilityElements) {
>>         final Collection<UnknownExtensibilityElement> unknownExtElements =
>> CollectionsX.filter(extensibilityElements,
>> UnknownExtensibilityElement.class);
>> -        for (UnknownExtensibilityElement extensibilityElement :
>> unknownExtElements) {
>> +        for(Iterator<UnknownExtensibilityElement> iter =
>> unknownExtElements.iterator(); iter.hasNext();) {
>> +               final UnknownExtensibilityElement extensibilityElement =
>> iter.next();
>>             final Element e = extensibilityElement.getElement();
>>             // keep only the header elements
>>             if
>> (!Namespaces.ODE_HTTP_EXTENSION_NS.equalsIgnoreCase(e.getNamespaceURI())
>>                     ||
>> !"header".equals(extensibilityElement.getElement().getLocalName())) {
>> -                unknownExtElements.remove(extensibilityElement);
>> +                iter.remove();
>>             }
>>         }
>>         return unknownExtElements;
>>
>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message