Unfortunately there is no workaround. Could you try running your code with Axiom 1.3.1-SNAPSHOT to see if there are any other issues? The Maven repository for those snapshots is https://repository.apache.org/snapshots/.
Andreas On Sat, Nov 20, 2021 at 2:47 PM joey fedor <joeyfe...@gmail.com> wrote: > Thank you Andreas, > > Any suggestion on how to deal with this while we wait for the next release? > > On Sat, Nov 20, 2021, 8:38 AM Andreas Veithen-Knowles < > andreas.veit...@gmail.com> wrote: > >> It's not a problem with the parser configuration, but a bug in the >> implementation of the getElementText method of the XMLStreamReader returned >> by getXMLStreamReaderWithoutCaching. This is fixed by >> https://github.com/apache/ws-axiom/commit/f8eb657ee0c9ee0fd4754ccdc6c96da20dc6de4d >> . >> >> Andreas >> >> On Fri, Nov 19, 2021 at 5:06 PM joey fedor <joeyfe...@gmail.com> wrote: >> >>> Hi, >>> >>> Ignore this if it is a duplicate, It seemed to be undeliverable on my >>> other email. >>> >>> Recently we updated AXIS2 from version 1.7.9 to version 1.8.0. After >>> running our server we quickly found some adverse behavior from the update. >>> Our clients will send a soap envelope to the server with several fields. If >>> one of these fields is wrapped in a CDATA tag it gets parsed as an empty >>> string. >>> >>> >>> *For example:* >>> <soapenv:Envelope xmlns:soapenv= >>> http://schemas.xmlsoap.org/soap/envelope/ >>> xmlns:web=http://testsite.partner.inbound> >>> <soapenv:Header/> >>> <soapenv:Body> >>> <web:upload> >>> >>> <!--Optional:--> >>> <web:username>username</web:username> >>> >>> <!--Optional:--> >>> <web:password>password</web:password> >>> >>> <!--Optional:--> >>> <web:data><![CDATA[TestCdata]]></web:data> >>> >>> </web:upload> >>> </soapenv:Body> >>> </soapenv:Envelope> >>> >>> >>> *Code generated using wsdl2java:* >>> XMLStreamReader parser = >>> root.getBody().getFirstElement().getXMLStreamReaderWithoutCaching(); >>> >>> Upload u = Upload.Factory.parse(parser); >>> >>> String username = u.getUsername()); >>> String password = u.getPassword()); >>> String data = u.getData()); >>> >>> >>> >>> *our expected results for each variable is:*username = “username” >>> password = “password” >>> data = “TestCdata” >>> >>> >>> *but we are getting the following:*username = “username” >>> password = “password” >>> data = “” >>> >>> After some digging this appears to be due to a change in the way that >>> the newer version of axiom handles preserving Cdata as well as its change >>> in default coalescing. I have been reading through the axiom userguide with >>> the recommendation of changing javax.xml.stream.isCoalescing=true (ive >>> tried false as well), but its seems to have no effect. >>> >>> Am I missing something here or is CDATA not something that Axis2 is able >>> to handle as of 1.8.0 ? >>> >>> Thank you, >>> Joey >>> >>