Thread: [Grimoires-users] problem(potential bug) with getOperationByMessagePartReference()
Brought to you by:
stevecrouch
|
From: Yu P. <yp...@bi...> - 2007-05-05 23:24:36
|
Hi,
I encounters a problem while using Grimoires1.0.4. I published a set of
WSDL files, then try to query the operation by given the message part
references. As long as the operation names are difference for each
operation in each WSDL file, there is no problem. However, if you have two
operations (in different WSDL files, however) that have the same name,
then the wsdl.findOperationByMessagePart() get confused and could return any of
them. For example, I have the following two wsdl files (only fragments are
shown):
<wsdl:definitions name="ClustalwService"
targetNamespace="http://www.cs.nmsu.edu/bsis/services/clustalw4"
...>
...
<wsdl:message name="ClustalwRequest">
<wsdl:part name="sequences" element="types:sequences"/>
<wsdl:part name="proteinMatrix" element="types:proteinMatrix"/>
<wsdl:part name="dnaMatrix" element="types:dnaMatrix"/>
</wsdl:message>
<wsdl:message name="ClustalwResponse">
<wsdl:part name="alignedSequences"
element="types:alignedSequences"/>
<wsdl:part name="outTree" element="types:outTree"/>
</wsdl:message>
<wsdl:portType name="ClustalwPortType">
<wsdl:operation name="run">
<wsdl:input name="ClustalwRequest"
message="tns:ClustalwRequest"/>
<wsdl:output name="ClustalwResponse"
message="tns:ClustalwResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ClustalwSoapBinding" type="tns:ClustalwPortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="run">
<soap:operation soapAction=""/>
<wsdl:input name="ClustalwRequest">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="ClustalwResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
...
</wsdl:definitions>
<wsdl:definitions name="ReadSeq"
targetNamespace="http://www.cs.nmsu.edu/bsis/services/readseq"
...>
...
<wsdl:message name="ReadSeqRequest">
<wsdl:part name="sequences" element="types:sequences"/>
<wsdl:part name="format" element="types:format"/>
</wsdl:message>
<wsdl:message name="ReadSeqResponse">
<wsdl:part name="outSequences" element="types:outSequences"/>
</wsdl:message>
<wsdl:portType name="ReadSeqPortType">
<wsdl:operation name="run">
<wsdl:input name="ReadSeqRequest"
message="tns:ReadSeqRequest"/>
<wsdl:output name="ReadSeqResponse"
message="tns:ReadSeqResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ReadSeqSoapBinding" type="tns:ReadSeqPortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="run">
<soap:operation soapAction=""/>
<wsdl:input name="ReadSeqRequest">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="ReadSeqResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
</wsdl:definitions>
When I try to query the operation using the message part reference:
http://www.cs.nmsu.edu/bsis/services/readseq : ReadSeqRequest : sequences
It supposes to return me the operation detail as:
http://www.cs.nmsu.edu/bsis/services/readseq : ReadSeqPortType : run
However, it gives me the following one:
http://www.cs.nmsu.edu/bsis/services/clustalw4 : ClustalwPortType : run
I was first doubting that it is the 1.0.4 version problem then I download
the 1.2.3 version but the problem still exists. I finally find out the
reason is because they share the same operation name "run". I tried
published the service with different operation names, then it is ok. I
do not know any of you have encountered the same problem before. But to
me, it looks like a potential bug in the function since it is
unavoidably people may use the same names for different operations.
Further information needed, let me know.
Thanks a lot.
Yu
-----------------------------------------------------------------------
Department of Computer Science | Email: yp...@cs...
New Mexico State University | Phone: (505)646-6224
Las Cruces, NM 88001 | Homepage: http://www.cs.nmsu.edu/~ypan
-----------------------------------------------------------------------
|
|
From: Weijian F. <wf...@ec...> - 2007-05-08 10:38:57
|
---------- Forwarded message ---------- From: Weijian Fang <wf...@ec...> Date: 08-May-2007 11:37 Subject: Re: [Grimoires-users] problem(potential bug) with getOperationByMessagePartReference() To: Yu Pan <yp...@bi...> Hi, Thanks a lot for identifying this bug. I have fixed the bug in Grimoires 1.5.0, which can be downloaded from http://users.ecs.soton.ac.uk/~wf/grimoires/Grimoires-1.5.0.zip. If there is any further questions, please let me know. Can you tell me more about your project which uses Grimoires? Thanks. Cheers, Weijian On 06/05/07, Yu Pan <yp...@bi...> wrote: > Hi, > > I encounters a problem while using Grimoires1.0.4. I published a set of > WSDL files, then try to query the operation by given the message part > references. As long as the operation names are difference for each > operation in each WSDL file, there is no problem. However, if you have two > operations (in different WSDL files, however) that have the same name, > then the wsdl.findOperationByMessagePart() get confused and could return any of > them. For example, I have the following two wsdl files (only fragments are > shown): > > <wsdl:definitions name="ClustalwService" > targetNamespace="http://www.cs.nmsu.edu/bsis/services/clustalw4" > ...> > > ... > > <wsdl:message name="ClustalwRequest"> > <wsdl:part name="sequences" element="types:sequences"/> > <wsdl:part name="proteinMatrix" element="types:proteinMatrix"/> > <wsdl:part name="dnaMatrix" element="types:dnaMatrix"/> > </wsdl:message> > > <wsdl:message name="ClustalwResponse"> > <wsdl:part name="alignedSequences" > element="types:alignedSequences"/> > <wsdl:part name="outTree" element="types:outTree"/> > </wsdl:message> > > <wsdl:portType name="ClustalwPortType"> > <wsdl:operation name="run"> > <wsdl:input name="ClustalwRequest" > message="tns:ClustalwRequest"/> > <wsdl:output name="ClustalwResponse" > message="tns:ClustalwResponse"/> > </wsdl:operation> > </wsdl:portType> > > <wsdl:binding name="ClustalwSoapBinding" type="tns:ClustalwPortType"> > <soap:binding style="document" > transport="http://schemas.xmlsoap.org/soap/http"/> > <wsdl:operation name="run"> > <soap:operation soapAction=""/> > <wsdl:input name="ClustalwRequest"> > <soap:body use="literal"/> > </wsdl:input> > <wsdl:output name="ClustalwResponse"> > <soap:body use="literal"/> > </wsdl:output> > </wsdl:operation> > </wsdl:binding> > ... > </wsdl:definitions> > > <wsdl:definitions name="ReadSeq" > targetNamespace="http://www.cs.nmsu.edu/bsis/services/readseq" > ...> > > ... > > <wsdl:message name="ReadSeqRequest"> > <wsdl:part name="sequences" element="types:sequences"/> > <wsdl:part name="format" element="types:format"/> > </wsdl:message> > > <wsdl:message name="ReadSeqResponse"> > <wsdl:part name="outSequences" element="types:outSequences"/> > </wsdl:message> > > <wsdl:portType name="ReadSeqPortType"> > <wsdl:operation name="run"> > <wsdl:input name="ReadSeqRequest" > message="tns:ReadSeqRequest"/> > <wsdl:output name="ReadSeqResponse" > message="tns:ReadSeqResponse"/> > </wsdl:operation> > </wsdl:portType> > > <wsdl:binding name="ReadSeqSoapBinding" type="tns:ReadSeqPortType"> > <soap:binding style="document" > transport="http://schemas.xmlsoap.org/soap/http"/> > <wsdl:operation name="run"> > <soap:operation soapAction=""/> > <wsdl:input name="ReadSeqRequest"> > <soap:body use="literal"/> > </wsdl:input> > <wsdl:output name="ReadSeqResponse"> > <soap:body use="literal"/> > </wsdl:output> > </wsdl:operation> > </wsdl:binding> > </wsdl:definitions> > > When I try to query the operation using the message part reference: > http://www.cs.nmsu.edu/bsis/services/readseq : ReadSeqRequest : sequences > It supposes to return me the operation detail as: > http://www.cs.nmsu.edu/bsis/services/readseq : ReadSeqPortType : run > However, it gives me the following one: > http://www.cs.nmsu.edu/bsis/services/clustalw4 : ClustalwPortType : run > > I was first doubting that it is the 1.0.4 version problem then I download > the 1.2.3 version but the problem still exists. I finally find out the > reason is because they share the same operation name "run". I tried > published the service with different operation names, then it is ok. I > do not know any of you have encountered the same problem before. But to > me, it looks like a potential bug in the function since it is > unavoidably people may use the same names for different operations. > > Further information needed, let me know. > > Thanks a lot. > > Yu > > > ----------------------------------------------------------------------- > Department of Computer Science | Email: yp...@cs... > New Mexico State University | Phone: (505)646-6224 > Las Cruces, NM 88001 | Homepage: http://www.cs.nmsu.edu/~ypan > ----------------------------------------------------------------------- > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Grimoires-users mailing list > Gri...@li... > https://lists.sourceforge.net/lists/listinfo/grimoires-users > -- Cheers, Weijian -- Cheers, Weijian |