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 22:36:35 GMT
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