[kepler-dev] problem with type name mapping in WebService actor

Ilkay Altintas altintas at sdsc.edu
Tue May 22 13:57:19 PDT 2007

Hi Karen,

Your fixes last year seemed to break the execution of other array  
types. So an update by Zhiming Zhao was provided on:

[1] The parsing for array type; mainly in configureActor() and  
createPorts(Parameters params).
[2] The serialization for string array; in _sendOutput().

If there's a fix you could check in that supports all array types,  
that would be great.

As a side note, we're updating the web service actor completely to  
allow for basic, array and complex types. We'll keep the old version  
of the actor around (maybe only in the archive) so there's no harm in  
fixing that version.

Daniel Crawl from SPA is working on this.I you could send him the url  
for your web service, he could test it with the new version.

Daniel: Could you please check in a clean current version of the new  
web service actor with some test cases.


On May 22, 2007, at 10:27 AM, Karen L Schuchardt wrote:

> Hi,
> I had an old workflow that used the WebService actor.  At one point I
> had added support for ports of type unsignedByte[].  The actor is not
> working correctly with the latest version of kepler.  I don't know  
> when
> it broke as I have not updated in quite a long time.  Digging into the
> code a bit, I found that the methods
> _setObjectArray and _sendOutput no longer match on the web service  
> types
> and quietly fail.
> For example, in _setObjecArray, the line of code
> else if (portPtr.getType().toString().equals("{unsignedByte}"))...
> fails to match because the type string is now actually
> "arrayType(unsignedByte)"
> The analogous error occurs in _sendOutput.
> The type appears to be supplied to the _createPort method and their  
> are
> some notes in the vicinity indicating this code was changed:
> /* Original code
>            String baseTypeStr = _getArrayBaseType(arrTypeNode);
>            */
>            /* This code updated by Zhiming Zhao*/
>               String baseTypeStr =(String)(
> (org.apache.axis.wsdl.symbolTable.Parameter)parameters.returnParam).
> getType().getRefType().getQName().getLocalPart()+"[]";
>             QName nodeQname= (
> (org.apache.axis.wsdl.symbolTable.Parameter) 
> parameters.returnParam).getType().getRefType().getQName();
>               /* End */
> If I hack the code to also look for the new type name, the web service
> actor works for me.  I only have an example using the byte arrays but
> presumably all of the array types are affected by this.
> Has anybody else noticed this problem?  I am using java 1.5 and the  
> same
> version of the axis client that is shipped with kepler.  I'd be  
> willing
> to send fixed code but I'm not sure what the preferred fix would be.
> Let me know if I can be of more help.
> Karen
> _______________________________________________
> Kepler-dev mailing list
> Kepler-dev at ecoinformatics.org
> http://mercury.nceas.ucsb.edu/ecoinformatics/mailman/listinfo/ 
> kepler-dev

Lab Director, Scientific Workflow Automation Technologies (SWAT)
San Diego Supercomputer Center(SDSC), UCSD
9500 Gilman Drive, MC: 0505  La Jolla, CA  92093-0505
phone: (858) 822-5453                        fax: (858) 534-8303
                 web: http://users.sdsc.edu/~altintas

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mercury.nceas.ucsb.edu/ecoinformatics/pipermail/kepler-dev/attachments/20070522/3865f35e/attachment.htm

More information about the Kepler-dev mailing list