You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by Brady Johnson <bj...@roguewave.com> on 2007/06/27 21:29:14 UTC
TuscanySCA C++ : The WSDLOperation instance returned by WSDLDefinition::findOperation( portTypeName, operationName ) does not have the endpoint set.
I submit a TuscanySCA C++ JIRA for this.
https://issues.apache.org/jira/browse/TUSCANY-1392
The problem is that the WSDLOperation instance returned by
WSDLDefinition::findOperation( portTypeName, operationName ) does not
have the endpoint set. I can see that its not set in
WSDLDefinition::findOperation() because that particular signature of the
method does not have access to the WSDL service, which is where the
endpoint is contained. The other signature of that method:
findOperation( serviceName, PortName, operationName ) does set the
endpoint in the WSDLOperation since it does have access to the WSDL
service.
The fix for this problem is not trivial, and leads into another issue
with the findOperation() methods. Every time either method is called,
they walk the SDO, which could be an acceptable performance hit during
load time, but is not an efficient runtime search. There is an
operationMap available, but it is never populated.
I think the best solution would be to traverse the wsdlModel SDO upon
instantiation, and when addWSDLModel() is called, and populate the
operationMap. This would solve the above problem of not having access to
the WSDL service endpoint, and also address the runtime performance
issues associated with walking the SDO.
Another less optimal solution would be to at least add the operation to
the operationMap each time findOperation() is called, effectively
caching the operations. But this still doesnt address the problem of the
WSDL service endpoint.
When a solution is decided, I can implement the patch and submit it for
a contributor to put into the code base.
Thanks
--------------------
Brady Johnson
Lead Software Developer - HydraSCA
Rogue Wave Software - brady.johnson@roguewave.com
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org
RE: TuscanySCA C++ : The WSDLOperation instance returned by WSDLDefinition::findOperation( portTypeName, operationName ) does not have the endpoint set.
Posted by Brady Johnson <bj...@roguewave.com>.
I have a patch implemented for this but have a few questions/issues
before finalizing it.
When testing the patch, I ran into a problem with the
CppBigBank/bigbank.account/StockQuoteWebService.wsdl WSDL bindings. The
WSDL has 3 bindings, only one of which is a SOAP binding, the other two
are HTTP bindings. I considered discarding these non-SOAP bindings. Is
that the correct thing to do? I'm inclined to think not.
This leads into my second question: If we don't discard these non-SOAP
bindings, a WSDLOperation should be created for the relavent operations.
If we create a WSDLOperation for these bindings, how cohesive would that
be, considering that the WSDLOperation seems rather SOAP-centric? The
attributes documentStyle, wrappedStyle, encoded, and soapVer don't
really apply to a WSDLOperation for an HTTP binding. Then there's the
issue of having no attributes for http. A quick solution would be to
have a string attribute called binding, and possibly some HTTP binding
attributes. A better solution would be to use a Strategy design pattern,
creating a Binding class hierarchy and having a Binding base class
pointer in WSDLOperation. Do we really need to go that far, though?
Thoughts anyone?
--------------------
Brady Johnson
Lead Software Developer - HydraSCA
Rogue Wave Software - brady.johnson@roguewave.com
-----Original Message-----
From: Pete Robbins [mailto:robbinspg@googlemail.com]
Sent: Wednesday, June 27, 2007 2:33 PM
To: tuscany-dev@ws.apache.org
Subject: Re: TuscanySCA C++ : The WSDLOperation instance returned by
WSDLDefinition::findOperation( portTypeName, operationName ) does not
have the endpoint set.
On 27/06/07, Brady Johnson <bj...@roguewave.com> wrote:
>
> I submit a TuscanySCA C++ JIRA for this.
>
> https://issues.apache.org/jira/browse/TUSCANY-1392
>
> The problem is that the WSDLOperation instance returned by
> WSDLDefinition::findOperation( portTypeName, operationName ) does not
> have the endpoint set. I can see that its not set in
> WSDLDefinition::findOperation() because that particular signature of
> the method does not have access to the WSDL service, which is where
> the endpoint is contained. The other signature of that method:
> findOperation( serviceName, PortName, operationName ) does set the
> endpoint in the WSDLOperation since it does have access to the WSDL
> service.
>
> The fix for this problem is not trivial, and leads into another issue
> with the findOperation() methods. Every time either method is called,
> they walk the SDO, which could be an acceptable performance hit during
> load time, but is not an efficient runtime search. There is an
> operationMap available, but it is never populated.
>
> I think the best solution would be to traverse the wsdlModel SDO upon
> instantiation, and when addWSDLModel() is called, and populate the
> operationMap. This would solve the above problem of not having access
> to the WSDL service endpoint, and also address the runtime performance
> issues associated with walking the SDO.
I would certainly vote for this option.
>
> Another less optimal solution would be to at least add the operation
> to the operationMap each time findOperation() is called, effectively
> caching the operations. But this still doesnt address the problem of
> the WSDL service endpoint.
>
> When a solution is decided, I can implement the patch and submit it
> for a contributor to put into the code base.
>
Please submit a patch when ready. I'm rebuilding my dev environment
after a disk crash but should be able to apply/test patches soon.
> Thanks
>
> --------------------
> Brady Johnson
> Lead Software Developer - HydraSCA
> Rogue Wave Software - brady.johnson@roguewave.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: tuscany-dev-help@ws.apache.org
>
>
--
Pete
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org
Re: TuscanySCA C++ : The WSDLOperation instance returned by WSDLDefinition::findOperation( portTypeName, operationName ) does not have the endpoint set.
Posted by Pete Robbins <ro...@googlemail.com>.
On 27/06/07, Brady Johnson <bj...@roguewave.com> wrote:
>
> I submit a TuscanySCA C++ JIRA for this.
>
> https://issues.apache.org/jira/browse/TUSCANY-1392
>
> The problem is that the WSDLOperation instance returned by
> WSDLDefinition::findOperation( portTypeName, operationName ) does not
> have the endpoint set. I can see that its not set in
> WSDLDefinition::findOperation() because that particular signature of the
> method does not have access to the WSDL service, which is where the
> endpoint is contained. The other signature of that method:
> findOperation( serviceName, PortName, operationName ) does set the
> endpoint in the WSDLOperation since it does have access to the WSDL
> service.
>
> The fix for this problem is not trivial, and leads into another issue
> with the findOperation() methods. Every time either method is called,
> they walk the SDO, which could be an acceptable performance hit during
> load time, but is not an efficient runtime search. There is an
> operationMap available, but it is never populated.
>
> I think the best solution would be to traverse the wsdlModel SDO upon
> instantiation, and when addWSDLModel() is called, and populate the
> operationMap. This would solve the above problem of not having access to
> the WSDL service endpoint, and also address the runtime performance
> issues associated with walking the SDO.
I would certainly vote for this option.
>
> Another less optimal solution would be to at least add the operation to
> the operationMap each time findOperation() is called, effectively
> caching the operations. But this still doesnt address the problem of the
> WSDL service endpoint.
>
> When a solution is decided, I can implement the patch and submit it for
> a contributor to put into the code base.
>
Please submit a patch when ready. I'm rebuilding my dev environment
after a disk crash but should be able to apply/test patches soon.
> Thanks
>
> --------------------
> Brady Johnson
> Lead Software Developer - HydraSCA
> Rogue Wave Software - brady.johnson@roguewave.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: tuscany-dev-help@ws.apache.org
>
>
--
Pete
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org