P
Peter C. Verhage
Hi,
I've got some weird string problem that in the end causes an error in
SOAP4R / ActionWebService. I have a simple (SOAP) structure with some
string attributes. The value assigned to this structure are read from a
file. The structure itself is returned in an array by a SOAP method.
This results in the following exception:
Exception: Cannot map Array to SOAP/OM.
After some debugging I found out that this exception is caused by an
earlier exception:
Exception: Cannot map String to SOAP/OM.
After some more debugging I found out that the following string (and
other strings read from the file on disk!) cause the exception:
epointment#1481
Seems like an ordinary string to me. But when I print this string to the
console, copy it and assign it directly to one of the attributes of the
structure (instead of reading it from the file) the problem disappears.
If I reassign the value of the structure attribute using:
obj.attr = "#{obj.attr}"
The problem also magically disappears.
When I compare the string from file and the string in my program using
the following code:
value = 'epointment#1481'
p value == file_value # => true
p value <=> file_value # => 0
They appear to be equal. I also checked if the string from file is
frozen or not, but it isn't.
It might be some weird characterset problem, but if I look at the
characters in the string they look like ordinary ASCII characters which
are available in (all?) character sets. And even if they weren't why
does my comparison return true then?
Does anybody have an idea what might be the problem here? And why SOAP4R
might be choking on this?
Regards,
Peter
I've got some weird string problem that in the end causes an error in
SOAP4R / ActionWebService. I have a simple (SOAP) structure with some
string attributes. The value assigned to this structure are read from a
file. The structure itself is returned in an array by a SOAP method.
This results in the following exception:
Exception: Cannot map Array to SOAP/OM.
After some debugging I found out that this exception is caused by an
earlier exception:
Exception: Cannot map String to SOAP/OM.
After some more debugging I found out that the following string (and
other strings read from the file on disk!) cause the exception:
epointment#1481
Seems like an ordinary string to me. But when I print this string to the
console, copy it and assign it directly to one of the attributes of the
structure (instead of reading it from the file) the problem disappears.
If I reassign the value of the structure attribute using:
obj.attr = "#{obj.attr}"
The problem also magically disappears.
When I compare the string from file and the string in my program using
the following code:
value = 'epointment#1481'
p value == file_value # => true
p value <=> file_value # => 0
They appear to be equal. I also checked if the string from file is
frozen or not, but it isn't.
It might be some weird characterset problem, but if I look at the
characters in the string they look like ordinary ASCII characters which
are available in (all?) character sets. And even if they weren't why
does my comparison return true then?
Does anybody have an idea what might be the problem here? And why SOAP4R
might be choking on this?
Regards,
Peter