Author: jsdelfino
Date: Sun Oct 15 17:08:12 2006
New Revision: 464326
URL: http://svn.apache.org/viewvc?view=rev&rev=464326
Log:
Fix for TUSCANY-855, find SDO property representing doc-lit-wrapped wrapper
element and use its type instead of assuming that the type is named like the
element.
Modified:
incubator/tuscany/cpp/sca/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/Axis2Client.cpp
incubator/tuscany/cpp/sca/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSServiceProxy.cpp
Modified:
incubator/tuscany/cpp/sca/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/Axis2Client.cpp
URL:
http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/Axis2Client.cpp?view=diff&rev=464326&r1=464325&r2=464326
==============================================================================
---
incubator/tuscany/cpp/sca/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/Axis2Client.cpp
(original)
+++
incubator/tuscany/cpp/sca/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/Axis2Client.cpp
Sun Oct 15 17:08:12 2006
@@ -38,6 +38,7 @@
#include "tuscany/sca/core/SCARuntime.h"
#include "tuscany/sca/util/Logging.h"
+#include "tuscany/sca/util/Utils.h"
#include "model/WSServiceBinding.h"
#include "tuscany/sca/util/Utils.h"
#include "tuscany/sca/util/Exceptions.h"
@@ -281,15 +282,27 @@
try
{
- // Create the output wrapper
- const Type& inputType =
dataFactory->getType(wsdlOperation.getInputTypeUri().c_str(),
- wsdlOperation.getInputTypeName().c_str());
+ // Create the input wrapper
+ const Type& rootType =
dataFactory->getType(wsdlOperation.getInputTypeUri().c_str(), "RootType");
+ const Property& prop =
rootType.getProperty(wsdlOperation.getInputTypeName().c_str());
+ const Type& inputType = prop.getType();
inputDataObject = dataFactory->create(inputType);
}
catch (SDORuntimeException e)
{
- // The input wrapper type is not known, create an open
DataObject
- inputDataObject =
dataFactory->create(Type::SDOTypeNamespaceURI, "OpenDataObject");
+ try
+ {
+ // Create the input wrapper
+ const Type& inputType =
dataFactory->getType(wsdlOperation.getInputTypeUri().c_str(),
+ wsdlOperation.getInputTypeName().c_str());
+ inputDataObject = dataFactory->create(inputType);
+ }
+ catch (SDORuntimeException e2)
+ {
+
+ // The input wrapper type is not known, create an
open DataObject
+ inputDataObject =
dataFactory->create(Type::SDOTypeNamespaceURI, "OpenDataObject");
+ }
}
// Go through data object to set the input parameters
Modified:
incubator/tuscany/cpp/sca/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSServiceProxy.cpp
URL:
http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSServiceProxy.cpp?view=diff&rev=464326&r1=464325&r2=464326
==============================================================================
---
incubator/tuscany/cpp/sca/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSServiceProxy.cpp
(original)
+++
incubator/tuscany/cpp/sca/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSServiceProxy.cpp
Sun Oct 15 17:08:12 2006
@@ -198,7 +198,6 @@
{
float* floatData = new float;
*floatData =
inputDataObject->getFloat(pl[i]);
- //printf("inputDataObject has FloatType
named %s with value %f\n", name, *floatData);
operation.addParameter(floatData);
}
break;
@@ -248,7 +247,6 @@
* Get each element as a DataObject and
add in to the parameter list
*/
- printf("inputDataObject has
OpenDataObjectType named %s\n", name);
DataObjectList& dataObjectList =
inputDataObject->getList(pl[i]);
for(int j=0; j<dataObjectList.size(); j++)
@@ -328,17 +326,28 @@
// Set the data in the outputDataObject to be
returned
DataObjectPtr outputDataObject;
- try
- {
+ try {
// Create the output wrapper
- const Type& outputType =
dataFactoryPtr->getType(outputTypeURI, outputTypeName);
+ const Type& rootType =
dataFactoryPtr->getType(outputTypeURI, "RootType");
+ const Property& prop =
rootType.getProperty(outputTypeName);
+ const Type& outputType = prop.getType();
outputDataObject =
dataFactoryPtr->create(outputType);
}
catch (SDORuntimeException e)
{
- // The output wrapper type is not known,
create an open DataObject
- outputDataObject =
dataFactoryPtr->create(Type::SDOTypeNamespaceURI, "OpenDataObject");
+ try
+ {
+
+ // Create the output wrapper
+ const Type& outputType =
dataFactoryPtr->getType(outputTypeURI, outputTypeName);
+ outputDataObject =
dataFactoryPtr->create(outputType);
+ }
+ catch (SDORuntimeException e)
+ {
+ // The output wrapper type is not known,
create an open DataObject
+ outputDataObject =
dataFactoryPtr->create(Type::SDOTypeNamespaceURI, "OpenDataObject");
+ }
}
setOutputData(operation, outputDataObject,
dataFactoryPtr);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]