The only place where you have access to the raw stream is in the message builder.
I'm just curious: what is preventing you from having the issue fixed by the people who implemented the service? Andreas On Thu, Mar 12, 2009 at 07:03, Sanat Mastan Kumar <[email protected]> wrote: > Hi Andreas thanks for your response, > > can you please suggest how we can take the raw response steam from axis2 > with out any char encoding applying to it? > > Sanat, > > It is the responsibility of the service to choose the encoding it > wants to use in its response, and the service is expected to indicate > the encoding in the Content-Type and then to use that encoding in the > response. In your case the service fails to do so (unless you have > discovered a very rare bug in Axis2) and violates the SOAP specs. You > should collect the evidence for this by inspecting the response using > TCPMon or Wireshark and tell the people who developed this service to > fix it. > > Andreas > > On Wed, Mar 11, 2009 at 18:16, yskm <[email protected]> wrote: >> >> Hi, >> >> i am consuming a webservice (dont know the implementation of the service) >> for this i have written my client using axis2 1.4 and rampart 1.4, this >> client is working fine under normal response payload, if response contains >> any special characters like "Hello world ai? " i.e invalid UTF-8 >> characters >> myclient is breaking... following is the stacktrace.... >> >> org.apache.axis2.AxisFault: Error in extracting message properties >> � � � �at >> >> org.apache.rampart.handler.RampartReceiver.setFaultCodeAndThrowAxisFault(RampartReceiver.java:166) >> � � � �at >> org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:99) >> � � � �at org.apache.axis2.engine.Phase.invoke(Phase.java:317) >> � � � �at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:264) >> � � � �at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:163) >> � � � �at >> >> org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:363) >> � � � �at >> >> org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:416) >> � � � �at >> >> org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228) >> � � � �at >> org.apache.axis2.client.OperationClient.execute(OperationClient.java:163) >> � � � �at >> org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:548) >> � � � �at >> org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:528) >> � � � �at >> >> com.paypal.sparta.inbox.ws.OmnitureWSClient.callService(OmnitureWSClient.java:152) >> � � � �at >> >> com.paypal.sparta.inbox.ws.OmnitureWSClient.call2(OmnitureWSClient.java:88) >> � � � �at >> com.paypal.sparta.inbox.ws.OmnitureReport.main(OmnitureReport.java:35) >> Caused by: org.apache.rampart.RampartException: Error in extracting >> message >> properties >> � � � �at >> org.apache.rampart.RampartMessageData.<init>(RampartMessageData.java:322) >> � � � �at org.apache.rampart.RampartEngine.process(RampartEngine.java:70) >> � � � �at >> org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:92) >> � � � �... 12 more >> Caused by: org.apache.ws.security.WSSecurityException: Error in converting >> SOAP Envelope to Document; nested exception is: >> � � � �org.apache.axiom.om.OMException: com.ctc.wstx.exc.WstxIOException: >> Invalid >> UTF-8 middle byte 0x66 (at char #57163, byte #56398) >> � � � �at >> >> org.apache.rampart.util.Axis2Util.getDocumentFromSOAPEnvelope(Axis2Util.java:161) >> � � � �at >> org.apache.rampart.RampartMessageData.<init>(RampartMessageData.java:158) >> � � � �... 14 more >> Caused by: org.apache.axiom.om.OMException: >> com.ctc.wstx.exc.WstxIOException: Invalid UTF-8 middle byte 0x66 (at char >> #57163, byte #56398) >> � � � �at >> >> org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:249) >> � � � �at >> org.apache.axiom.om.impl.llom.OMNodeImpl.build(OMNodeImpl.java:327) >> � � � �at >> org.apache.axiom.om.impl.llom.OMElementImpl.build(OMElementImpl.java:706) >> � � � �at >> >> org.apache.rampart.util.Axis2Util.getDocumentFromSOAPEnvelope(Axis2Util.java:96) >> � � � �... 15 more >> Caused by: com.ctc.wstx.exc.WstxIOException: Invalid UTF-8 middle byte >> 0x66 >> (at char #57163, byte #56398) >> � � � �at >> com.ctc.wstx.sr.StreamScanner.throwFromIOE(StreamScanner.java:683) >> � � � �at >> com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1086) >> � � � �at >> >> org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:506) >> � � � �at >> >> org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:161) >> � � � �... 18 more >> Caused by: java.io.CharConversionException: Invalid UTF-8 middle byte 0x66 >> (at char #57163, byte #56398) >> � � � �at >> com.ctc.wstx.io.UTF8Reader.reportInvalidOther(UTF8Reader.java:313) >> � � � �at com.ctc.wstx.io.UTF8Reader.read(UTF8Reader.java:204) >> � � � �at com.ctc.wstx.io.MergedReader.read(MergedReader.java:101) >> � � � �at com.ctc.wstx.io.ReaderSource.readInto(ReaderSource.java:84) >> � � � �at >> >> com.ctc.wstx.io.BranchingReaderSource.readInto(BranchingReaderSource.java:57) >> � � � �at >> com.ctc.wstx.sr.StreamScanner.loadMoreFromCurrent(StreamScanner.java:1021) >> � � � �at >> com.ctc.wstx.sr.StreamScanner.parseLocalName2(StreamScanner.java:1771) >> � � � �at >> com.ctc.wstx.sr.StreamScanner.parseLocalName(StreamScanner.java:1731) >> � � � �at >> >> com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2912) >> � � � �at >> >> com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2846) >> � � � �at >> com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019) >> � � � �... 20 more >> >> >> I tried different ways to change the character encoding of the response >> input stream >> >> 1) by adding following options before calling the service method, this >> didn't worked. >> >> >> options.setProperty(org.apache.axis2.Constants.Configuration.CHARACTER_SET_ENCODING,"UTF-16"); >> at what circumstance does this statement work?? >> >> 2) I tried adding a handler in the InFlow phase inside Transport and >> Addressing and with in the handler i added following statements >> >> � � � � � � � �SOAPEnvelope se = msgContext.getEnvelope(); >> � � � � � � � �System.out.println(se); >> Here :) fortunately sysout is printing entire response payload , but the >> problem is it is printing up to valid UTF-8 characters, >> >> inspite of all these i didnt succeed in getting a response stream, >> >> i have two questions >> 1) can we change the response character encoding? before response stream >> is >> converted in to reader. >> 2) if not can we get raw response stream alone? later i will be parsing it >> in my program? >> >> This is very urgent requirement any help would be highly appreciated. >> >> Thanks >> Sanat. >> -- >> View this message in context: >> http://www.nabble.com/How-to-change-Axis2-response-character-encoding-tp22460000p22460000.html >> Sent from the Axis - User mailing list archive at Nabble.com. >> >> > > > On Thu, Mar 12, 2009 at 1:33 AM, Nabble Alerts <[email protected]> wrote: >> >> Nabble email alert >> >> New reply to your post How to change Axis2 response character encoding >> >> Re: How to change Axis2 response character encoding - 3 star >> Sanat, It is the responsibility of the service to choose the encoding it >> wants to use in its response, and the service is expected to indicate th... >> Read the entire message >> by Andreas Veithen-2 on 2009-03-11 in the Axis - User forum >> >> Delete this alert >> >> ________________________________ >> DO NOT REPLY TO THIS E-MAIL. >> >> Replies sent to this address are not read or processed. If you want to >> respond to a Nabble post for which you received this alert, please go to the >> Nabble website. > > > -- > > Regards, > > Sanat >
