Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
2.2.4, 2.2.12, 2.3.2
-
None
-
Windows XP SP3 Pro English, JDK 1.6.0.20, Aegis, CXF on server side is 2.2.4
Description
I'm using Apache CXF to expose a Java object through SOAP which has the following property:
private Map<String,String> constraintParams;
This gives me a correct WSDL file and I can use the SOAP method with no problems from tools like soapUI.
But I want to use the SOAP service from javascript. So I use the wsdl2js tool of CXF and it generates a .js file. When I use the javascript file it fails to parse the SOAP response from the server.
The SOAP XML part that the javascript code fails to deserialize looks like this:
<ns3:constraintParams>
<ns1:entry>
<ns1:key>regex</ns1:key>
<ns1:value>^.+$</ns1:value>
</ns1:entry>
</ns3:constraintParams>
It seems like the generated js code tries to deserialize the <entry> tag but the wsdl2js generator didn't actually generate that function, so the code of the generator is calling a function that it didn't generate. The following line in the js gives a "services_systemcontrol_mydomain_com__entry_deserialize" is not defined" error.
arrayItem = services_systemcontrol_mydomain_com__entry_deserialize(cxfjsutils, curElement);
At this moment the curElement property has the <entry> tag but the deserialize function simply is not in the generated js file.
Do I do anything wrong or is there another way that does work that I could look into?
On the server side I'm using 2.2.4, I tested the wsdl2js tool of versions 2.2.4, 2.2.12, 2.3.2 the result is always as above. I'm also using aegis