[kepler-dev] On Multi-outputs of Web Service actor

Jianting Zhang jzhang at lternet.edu
Fri Aug 12 09:31:46 PDT 2005


Hi, Ilkay: 

 

I'm not sure whether you got my mail sent yesterday. I looked into Axis
source codes and found that Parameters.list only contains input parameters.
Thus the WS actor will not be able to add multiple output ports when there
are multiple outputs from a WSDL operation when parameters.returnParam ==
null i.e., _returnMode==1 . c.f. method configureActor and method
createPorts(Parameters params). 

 

I guess we didn't find this bug because we don't have Web services that have
multiple outputs so far (although the specification allows). So this is not
a big problem if we use Axis based WS endpoints. But we may need to fix it
if we really want to support WS with multi-outputs. Actually this is not
very difficult and here is how I find the whole sets of inputs and outputs
from a WSDL document. 

 

Jianting

 

 

public static void getParas(SymbolTable t, Port p,Operation o) throws
Exception

{

                BindingEntry be
=t.getBindingEntry(p.getBinding().getQName());

                Input input = o.getInput();

                Collection inCol=input.getMessage().getOrderedParts(null);

    Output output = o.getOutput();

                Collection outCol=output.getMessage().getOrderedParts(null);

                Vector inputs=new Vector();

                t.getParametersFromParts(inputs,inCol,false,
o.getName(),be);

                System.out.println(inputs);

                Vector outputs=new Vector();

                t.getParametersFromParts(outputs,outCol,false,
o.getName(),be);

               System.out.println(outputs);

}

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mercury.nceas.ucsb.edu/ecoinformatics/pipermail/kepler-dev/attachments/20050812/1c91a610/attachment.htm


More information about the Kepler-dev mailing list