Fixed
Details
Assignee
UnassignedUnassignedReporter
Joseph GoochJoseph GoochPriority
MinorLabels
New Issue warning screen
Before you create a new Issue, please post to the mailing list first https://dev.lucee.org
Once the issue has been verified, one of the Lucee team will ask you to file an issue
Details
Details
Assignee
Unassigned
UnassignedReporter
Joseph Gooch
Joseph GoochPriority
Labels
New Issue warning screen
Before you create a new Issue, please post to the mailing list first https://dev.lucee.org
Once the issue has been verified, one of the Lucee team will ask you to file an issue
Created 17 July 2016 at 00:58
Updated 21 May 2024 at 19:57
Resolved 21 May 2024 at 19:57
WSDL which requires mapping to an element syntax, i.e:
<part name="EchoHeader" element="tns:requestBean"/>
Does not properly serialize. It appears Lucee follows some sort of default serializer instead. Structs get sent as structs (nsi:map type, with item/key/value wrappers), and Beans get sent as beans.
ACF properly sends the data - based on ACF's implementation it looks like it runs WSDL2JAVA which creates all the beans, with appropriate serializers, and then it uses those to send the data. Lucee appears to map its own types. (in this case, improperly) So it's not an issue with Axis 1 per se, so much as Lucee's use of the library.
Test case, with a minimalist WSDL, and XMLValidate calls available at:
https://github.com/goochjj/Lucee/tree/LDEV0933
See index.cfm in tests/tickets/LDEV0933/ for a graphical representation:
Bean:
<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <EchoRequest xmlns="http://jaxws.goochfriend.org/endpoint/"> <requestBean> <applicationid xsi:type="xsd:string">testAppID</applicationid> </requestBean> </EchoRequest> </soapenv:Body> </soapenv:Envelope>
Map:
<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <EchoRequest xmlns="http://jaxws.goochfriend.org/endpoint/"> <requestBean xsi:type="ns1:Map" xmlns:ns1="http://xml.apache.org/xml-soap"> <item xmlns=""> <key xsi:type="xsd:string">applicationid</key> <value xsi:type="xsd:string">TestAppID</value> </item> </requestBean> </EchoRequest> </soapenv:Body> </soapenv:Envelope>
No PR generated - because it would entail merging a failing testcase into Lucee proper 🙂
[java] [script] test.tickets.LDEV0933 [java] [script] (0 tests passed in 1056 ms) [java] [script] Suites/Specs: 1/1 [java] [script] Pass: 0 [java] [script] Failures: 1 [java] [script] Errors: 0 [java] [script] Skipped: 0 [java] [script] runTest:Struct provided to SOAP request did not pass validation when sent to service [java] [script] [Error] :1:647: cvc-elt.4.2: Cannot resolve 'ns1:Map' to a type definition for element 'requestBean'. [java] [script] [Error] :1:662: cvc-complex-type.2.4.a: Invalid content was found starting with element 'item'. One of '{"http://jaxws.goochfriend.org/endpoint/":applicationid}' is expected.