Thanks for your help, Andreas. JIRA issue created: AXIS2-4468

Michael


On Tue, Aug 18, 2009 at 10:17 PM, Andreas Veithen <[email protected]
> wrote:

> Michael,
>
> The following log message is interesting:
>
> org.apache.axiom.om.impl.MTOMXMLStreamWriter  - Returning access to
> the original output stream: java.io.bufferedoutputstr...@14181418
>
> It means that the xmlbeans databinding bypasses the normal StAX
> XMLStreamWriter and writes part of the output directly to the
> underlying byte stream. It is probably at that moment that things go
> wrong. Can you please open a JIRA [1] and attach a sample AAR (or WAR)
> that allows us to reproduce this problem?
>
> Andreas
>
> [1] https://issues.apache.org/jira/
>
> On Tue, Aug 18, 2009 at 12:41, Michael Fryars<[email protected]> wrote:
> > Andreas, here's the result of my test with Tomcat/Axis2-1.5, using a
> simple
> > echo service, databinding is xmlbeans, the WS client is SOAPUI 3.0.
> >
> > There are two requests to the same service. The request parameters don't
> > change, but the encoding is UTF-8 for the first request, then ISO-8859-1
> for
> > the second.
> >
> > Here is what SOAPUI displayed for these requests: 4 views per request:
> >   _01  main request view
> >   _02  raw request view
> >   _03  raw response view
> >   _04  main response view
> >
> > ## exp01 SOAPUI request in UTF-8
> > ## 01_01
> > <?xml version='1.0' encoding='UTF-8'?>
> > <soapenv:Envelope xmlns:soapenv="
> http://schemas.xmlsoap.org/soap/envelope/";
> > xmlns:urn="urn:transport:mfrtest:1:api:axistest">
> >    <soapenv:Header/>
> >    <soapenv:Body>
> >       <urn:echoParameter>
> >          <urn:clientMsg>déjà été à la plage</urn:clientMsg>
> >       </urn:echoParameter>
> >    </soapenv:Body>
> > </soapenv:Envelope>
> >
> > ## 01_02
> > POST http://localhost:8080/MfrTestWar/services/EchoService_1 HTTP/1.1
> > Accept-Encoding: gzip,deflate
> > Content-Type: text/xml;charset=UTF-8
> > SOAPAction: "echo"
> > User-Agent: Jakarta Commons-HttpClient/3.1
> > Host: localhost:8080
> > Content-Length: 367
> >
> > <?xml version='1.0' encoding='UTF-8'?>
> > <soapenv:Envelope xmlns:soapenv="
> http://schemas.xmlsoap.org/soap/envelope/";
> > xmlns:urn="urn:transport:mfrtest:1:api:axistest">
> >    <soapenv:Header/>
> >    <soapenv:Body>
> >       <urn:echoParameter>
> >          <urn:clientMsg>déjà été à la plage</urn:clientMsg>
> >       </urn:echoParameter>
> >    </soapenv:Body>
> > </soapenv:Envelope>
> >
> > ## 01_03
> > HTTP/1.1 200 OK
> > Server: Apache-Coyote/1.1
> > Content-Type: text/xml;charset=UTF-8
> > Transfer-Encoding: chunked
> > Date: Tue, 18 Aug 2009 09:15:18 GMT
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <soapenv:Envelope xmlns:soapenv="
> http://schemas.xmlsoap.org/soap/envelope/";>
> >   <soapenv:Body>
> >     <urn:echoResult xmlns:urn="urn:transport:mfrtest:1:api:axistest">
> >       <urn:serverMsg>là ça veut dire : déjà été à la
> > plage</urn:serverMsg>
> >     </urn:echoResult>
> >   </soapenv:Body>
> > </soapenv:Envelope>
> >
> > ## 01_04
> > <soapenv:Envelope xmlns:soapenv="
> http://schemas.xmlsoap.org/soap/envelope/";>
> >    <soapenv:Body>
> >       <urn:echoResult xmlns:urn="urn:transport:mfrtest:1:api:axistest">
> >          <urn:serverMsg>là ça veut dire : déjà été à la
> > plage</urn:serverMsg>
> >       </urn:echoResult>
> >    </soapenv:Body>
> > </soapenv:Envelope>
> >
> >
> > ## exp01 SOAPUI request in ISO-8859-1
> > ## 02_01
> > <?xml version='1.0' encoding='ISO-8859-1'?>
> > <soapenv:Envelope xmlns:soapenv="
> http://schemas.xmlsoap.org/soap/envelope/";
> > xmlns:urn="urn:transport:mfrtest:1:api:axistest">
> >    <soapenv:Header/>
> >    <soapenv:Body>
> >       <urn:echoParameter>
> >          <urn:clientMsg>déjà été à la plage</urn:clientMsg>
> >       </urn:echoParameter>
> >    </soapenv:Body>
> > </soapenv:Envelope>
> >
> > ## 02_02
> > POST http://localhost:8080/MfrTestWar/services/EchoService_1 HTTP/1.1
> > Accept-Encoding: gzip,deflate
> > Content-Type: text/xml;charset=iso-8859-1
> > SOAPAction: "echo"
> > User-Agent: Jakarta Commons-HttpClient/3.1
> > Host: localhost:8080
> > Content-Length: 367
> >
> > <?xml version='1.0' encoding='ISO-8859-1'?>
> > <soapenv:Envelope xmlns:soapenv="
> http://schemas.xmlsoap.org/soap/envelope/";
> > xmlns:urn="urn:transport:mfrtest:1:api:axistest">
> >    <soapenv:Header/>
> >    <soapenv:Body>
> >       <urn:echoParameter>
> >          <urn:clientMsg>déjà été à la plage</urn:clientMsg>
> >       </urn:echoParameter>
> >    </soapenv:Body>
> > </soapenv:Envelope>
> >
> > ## 02_03
> > HTTP/1.1 200 OK
> > Server: Apache-Coyote/1.1
> > Content-Type: text/xml;charset=iso-8859-1
> > Transfer-Encoding: chunked
> > Date: Tue, 18 Aug 2009 09:20:07 GMT
> >
> > <?xml version="1.0" encoding="iso-8859-1"?>
> > <soapenv:Envelope xmlns:soapenv="
> http://schemas.xmlsoap.org/soap/envelope/";>
> >   <soapenv:Body>
> >     <urn:echoResult xmlns:urn="urn:transport:mfrtest:1:api:axistest">
> >       <urn:serverMsg>là ça veut dire : déjà été à la
> > plage</urn:serverMsg>
> >     </urn:echoResult>
> >   </soapenv:Body>
> > </soapenv:Envelope>
> >
> > ## 02_04
> > <soapenv:Envelope xmlns:soapenv="
> http://schemas.xmlsoap.org/soap/envelope/";>
> >    <soapenv:Body>
> >       <urn:echoResult xmlns:urn="urn:transport:mfrtest:1:api:axistest">
> >          <urn:serverMsg>là ça veut dire : déjà été à la
> > plage</urn:serverMsg>
> >       </urn:echoResult>
> >    </soapenv:Body>
> > </soapenv:Envelope>
> >
> >
> > I confirmed that my server-side handler receives a correctly decoded
> > parameter string from Axis2 (i.e. UTF-8 => unicode, ISO-8859-1 =>
> unicode).
> > But you can see that the response in the ISO-8859-1 case is not correctly
> > encoded: the special characters are still in UTF-8.
> >
> > Debug trace files for the two request/response trials are attached to
> this
> > message.
> >
> > Best regards,
> >
> > Michael
> >
> >
> > On Fri, Aug 14, 2009 at 7:11 PM, Andreas Veithen <
> [email protected]>
> > wrote:
> >>
> >> Michael,
> >>
> >> Can you test this with 1.5 and if the problem persists, create a
> >> minimal AAR that reproduces the problem (so that we can debug it)?
> >>
> >> Andreas
> >>
> >> On Fri, Aug 14, 2009 at 12:27, Michael Fryars<[email protected]>
> wrote:
> >> > Axis2 v1.4.1, running in a WAR in a tomcat 6 container.
> >> >
> >> > On Fri, Aug 14, 2009 at 12:20 PM, Andreas Veithen
> >> > <[email protected]> wrote:
> >> >>
> >> >> Which version of Axis2 do you use?
> >> >>
> >> >> Andreas
> >> >>
> >> >> On Fri, Aug 14, 2009 at 11:39, Michael Fryars<[email protected]>
> >> >> wrote:
> >> >> > Hello,
> >> >> > I'm seeking some advice/help with a character encoding problem with
> >> >> > an
> >> >> > axis2
> >> >> > service (i.e. server side).
> >> >> >
> >> >> > When my service receives a (WS/SOAP) request with:
> >> >> >       Content-Type: text/xml; charset=UTF-8
> >> >> > in the HTTP header, everything works fine, any unusual charcters in
> >> >> > the
> >> >> > response are correctly encoded in UTF-8.
> >> >> >
> >> >> > But when the service receives a request with:
> >> >> >       Content-Type: text/xml; charset=ISO-8859-1
> >> >> > the response is inconsistent. The response is labelled as
> ISO-8859-1:
> >> >> >       Content-Type: text/xml; charset=ISO-8859-1
> >> >> >       <?xml version="1.0" encoding="ISO-8859-1"?>
> >> >> > but in fact the message body is still encoded in UTF-8.
> >> >> >
> >> >> > Should the axis2 engine automatically select and use ISO-8859-1
> >> >> > encoding
> >> >> > for
> >> >> > the response? Or is it something I need to configure? Or is it
> always
> >> >> > UTF-8?
> >> >> >
> >> >> > I understood from a previous thread ("How to change Axis2 response
> >> >> > character
> >> >> > encoding") that axis2 selects a a message builder based on the
> >> >> > Content-Type
> >> >> > header. My axis2.xml config does not contain anything specifically
> >> >> > for
> >> >> > "text/xml" :
> >> >> >
> >> >> >     <messageBuilders>
> >> >> >         <messageBuilder contentType="application/xml"
> >> >> >
> >> >> > class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
> >> >> >         <messageBuilder contentType="application/xml"
> >> >> >
> >> >> > class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
> >> >> >         <messageBuilder
> >> >> > contentType="application/x-www-form-urlencoded"
> >> >> >
> >> >> > class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
> >> >> >         <messageBuilder contentType="multipart/form-data"
> >> >> >
> >> >> > class="org.apache.axis2.builder.MultipartFormDataBuilder"/>
> >> >> >     </messageBuilders>
> >> >> >
> >> >> > Is this where I need to intervene to control the response encoding?
> >> >> >
> >> >> > Thanks in advance for any help you can provide.
> >> >> >
> >> >> > Michael Fryars
> >> >> >
> >> >
> >> >
> >
> >
>

Reply via email to