axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andreas Veithen <andreas.veit...@gmail.com>
Subject Re: New Line character is escaped in the created SOAP message in Axis2 1.4 web service.
Date Sat, 18 Jul 2009 20:10:22 GMT
I added a description of the approach to the Axiom documentation [1].
Note that this only applies to Axiom 1.2.9-SNAPSHOT, so you will need
to upgrade.

Andreas

[1] http://people.apache.org/~veithen/axiom/tutorial/ch04.html#factory.properties

On Thu, Jul 16, 2009 at 19:46, Andreas Veithen<andreas.veithen@gmail.com> wrote:
> Dennis,
>
> Probably one could discuss for hours what should be considered as the
> correct behavior, and there are good arguments for both points of
> view. I guess that for Woodstox, the justification is that their
> approach guarantees that when serializing and deserializing a
> document, CHARACTERS events are reconstructed exactly, i.e. without
> loosing CR characters.
>
> As suggested in my initial reply, I think that Axiom has everything
> that is needed to make this easily configurable. I was planning to add
> a FAQ entry to explain how to achieve this.
>
> Andreas
>
> On Thu, Jul 16, 2009 at 18:39, Dennis Sosnoski<dms@sosnoski.com> wrote:
>> Hi Andreas,
>>
>> Calling this "the correct behavior" seems a stretch to me. It's the expected
>> behavior using the Woodstox output handling, but it leads to strange results
>> in practice. There's no justification in terms of the XML specification for
>> escaping the LF character, since the specification explicitly allows for the
>> various CR/LF combinations (and normalizes them all on input).
>>
>> It'd be better if Axis2 disabled this Woodstox peculiarity by default.
>>
>>  - Dennis
>>
>>
>> Andreas Veithen wrote:
>>>
>>> Yuri,
>>>
>>> This is actually the correct behavior. There is a discussion in
>>> WSCOMMONS-243 [1] and WSTX-94 [2] about why this is so. If you need to
>>> override this behavior, you may use the feature introduced by
>>> WSCOMMONS-461.
>>>
>>> Andreas
>>>
>>> [1] https://issues.apache.org/jira/browse/WSCOMMONS-243
>>> [2] http://jira.codehaus.org/browse/WSTX-94
>>>
>>> On Wed, Jul 15, 2009 at 04:11, iuriep<iuriep@gmail.com> wrote:
>>>
>>>>
>>>> Hello,
>>>>
>>>> I have implemented a web service and deployed it on Apache Axis2 1.4
>>>>
>>>> One of the XML elements (Payload element) declared as XML type 'String'
>>>> may
>>>> include text containing CRLF (carriage-return, linefeed) character
>>>> sequence.
>>>>
>>>> The problem is that CRLF character sequence is normalized by Axis into
>>>> #xD.
>>>> The LF character is escaped in the output.
>>>>
>>>> The Java code used to serialize the content of Payload element was
>>>> generated
>>>> by WSDL2Java tool and looks like this:
>>>>
>>>> public void serialize(final QName parentQName,
>>>>                         final OMFactory factory,
>>>>                         MTOMAwareXMLStreamWriter xmlWriter,
>>>>                         boolean serializeType)
>>>>           throws XMLStreamException, ADBException {
>>>>
>>>>       protected String localPayload;
>>>>       ...
>>>>       if (localPayload == null) {
>>>>           // write the nil attribute
>>>>           throw new ADBException(PAYLOAD_CANNOT_BE_NULL);
>>>>       } else {
>>>>           xmlWriter.writeCharacters(localPayload);
>>>>       }
>>>>       ...
>>>> }
>>>>
>>>> In the tcpmonitor the SOAP message that is being sent looks like:
>>>>
>>>> POST /axis2/services/Core/realtime/?OrgTaskID=100303 HTTP/1.1
>>>> Content-Type: application/soap+xml; charset=UTF-8;
>>>> action="RealTimeTransaction"
>>>> User-Agent: Axis2
>>>> Host: iuriep-ws:8079
>>>> Transfer-Encoding: chunked
>>>>
>>>> <?xml version='1.0' encoding='UTF-8'?>
>>>>  <soapenv:Envelope
>>>> xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
>>>>     <soapenv:Header>
>>>>        <wsse:Security
>>>>
>>>> xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
>>>> soapenv:mustUnderstand="true">
>>>>           <wsse:UsernameToken
>>>>
>>>> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
>>>> wsu:Id="UsernameToken-29624571">
>>>>              <wsse:Username>user100303</wsse:Username>
>>>>              <wsse:Password
>>>>
>>>> Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">kL1dVUPf5U</wsse:Password>
>>>>           </wsse:UsernameToken>
>>>>        </wsse:Security>
>>>>     </soapenv:Header>
>>>>     <soapenv:Body>
>>>>        <ns1:COREEnvelopeRealTimeRequest
>>>> xmlns:ns1="http://www.caqh.org/SOAP/WSDL/CORERule2.0.1.xsd">
>>>>           <PayloadType>X12_276_004010X093A1</PayloadType>
>>>>           <ProcessingMode>RealTime</ProcessingMode>
>>>>           <PayloadID>a7cea1a0-6cb9-11de-8782-000c2987b7be</PayloadID>
>>>>           <TimeStamp>2009-07-09T06:52:30Z</TimeStamp>
>>>>           <SenderID>EDIFECS TSK0021</SenderID>
>>>>           <ReceiverID>987654321</ReceiverID>
>>>>           <CORERuleVersion>2.0.1</CORERuleVersion>
>>>>
>>>> <Payload>ISA*00*00*987654321*0652*0*P*:#xD;GS*HR*TSK0021*004010X093A1#xD;ST*276*0001#xD;BHT*0010*13**4*3*22*0#xD;DMG*D8*19821103*M#xD;NM1*IL*1*PULSIPHER*BILL*K***MI*5643796#xD;TRN*1*ICN98765432#xD;REF*1K*DCN123467#xD;AMT*T3*2312#xD;DTP*232*RD8*20080401-20080430#xD;SE*16*0001#xD;GE*1*100001112#xD;IEA*1*100001112#xD;</Payload>
>>>>        </ns1:COREEnvelopeRealTimeRequest>
>>>>     </soapenv:Body>
>>>>  </soapenv:Envelope>
>>>>
>>>>
>>>> I have used WSDL2java tool to generate the stubs, skeletons, and data
>>>> types
>>>> from WSDL
>>>> I am also using the Pampart 1.4 module to include security headers into
>>>> the
>>>> SOAP message.
>>>>
>>>> Thanks in advance for any suggestion,
>>>> Yuri
>>>> --
>>>> View this message in context:
>>>> http://www.nabble.com/New-Line-character-is-escaped-in-the-created-SOAP-message-in-Axis2-1.4-web-service.-tp24490808p24490808.html
>>>> Sent from the Axis - User mailing list archive at Nabble.com.
>>>>
>>>>
>>>>
>>>
>>>
>>
>

Mime
View raw message