Hi,
I am trying to fix some of the (currently disabled) idltowsdl corba
binding type tests.
The tests involve invoking an operation with the following corba binding:
<wsdl:operation name="testChar">
<corba:operation name="testChar">
<corba:param mode="in" name="inChar" idltype="corba:char" />
<corba:param mode="inout" name="inoutChar" idltype="corba:char" />
<corba:param mode="out" name="outChar" idltype="corba:char" />
<corba:return name="return" idltype="corba:char" />
</corba:operation>
In the client process, during the marshalling of the request, a
CORBA.DATA_CONVERSION exception is thrown when we attempt to write out
the character.
I think the problem lies in the fact that the type mapping for a char is
corba:char <-> xs:byte <-> java byte (or Byte).
Class org.apache.yoko.bindings.corba.CorbaObjectWriter casts the object
to be marshalled to a Character in its writeChar method.
Should this be cast to a Byte instead? Or should the Byte be
appropriately converted to a Character before being written out?
I am not sure what the right approach to fix it is.
Perhaps someone with a better understanding of the runtime can help me here?
Any help or pointers to relevant resources will be appreciated.
To reproduce this failure, enable the test by commenting out the
testChar method in
bindings/src/test/java/org/apache/yoko/bindings/corba/IdlToWsdlTypeTest.java
Cheers,
- Matteo