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
>>>
>>

Reply via email to