Jasintha, That method assumes that the object model was produced by a coalescing parser, which is not the case here. It should use OMElement#getText() instead of OMText#getText(). However, that defeats the purpose of the PlainTextBuilder/WrappedTextNodeOMDataSourceFromReader stuff because it would read the entire CSV file into memory (Given the method signature of PayloadHelper#getTextPayload, it has no other choice). The better solution is to use ElementHelper#getTextAsStream from the Axiom API because that method enables streaming.
Andreas On Wed, Oct 26, 2011 at 06:55, Jasintha Dasanayaka <[email protected]> wrote: > Hi Andreas > > We are using smooks meditor in ESB to convert csv file to xml but we > couldn't convert the whole file into xml it's only convert 4KB size of data > .We identified that other part of the massage has lost within the synapse > class called "PayloadHelper.java" method name is > "getTextPayload(SOAPEnvelope envelope)" that method uses above way to get > axiom child > > you can find this code in synapse trunk class "PayloadHelper.java" line > number 199 > > Thanks & Regards > /Jasintha > > On Tue, Oct 25, 2011 at 11:58 PM, Andreas Veithen > <[email protected]> wrote: >> >> Jasintha, >> >> The sample code doesn't really show what you are trying to achieve. >> Obviously you wouldn't use Axiom to read the content of a file into a >> String, so what is the actual use case? >> >> Andreas >> >> On Tue, Oct 25, 2011 at 06:48, Jasintha Dasanayaka <[email protected]> >> wrote: >> > Hi Andreas >> > >> > According to you Answer in issue[1] I have modified the method as >> > follows >> > is this the correct way to do this If not could you please suggest a >> > correct >> > way >> > >> > >> > >> > private static String readFile(String file) throws IOException, >> > XMLStreamException { >> > >> > FileInputStream fin = new FileInputStream(file); >> > OMFactory factory = OMAbstractFactory.getOMFactory(); >> > String charSetEnc = >> > BuilderUtil.getCharSetEncoding("text/plain"); >> > QName wrapperQName = BaseConstants.DEFAULT_TEXT_WRAPPER; >> > Reader reader; >> > try { >> > reader = new InputStreamReader(fin, charSetEnc); >> > } catch (UnsupportedEncodingException ex) { >> > throw new AxisFault("Unsupported encoding: " + charSetEnc, >> > ex); >> > } >> > OMElement om = new OMSourcedElementImpl(wrapperQName, factory, >> > new WrappedTextNodeOMDataSourceFromReader(wrapperQName, >> > reader)); >> > om.serialize(System.out); >> > >> > /* before modify >> > OMNode textNode = om.getFirstOMChild(); >> > OMText text = (OMText) textNode; >> > return text.getText(); >> > */ >> > >> > StringBuffer buffer = new StringBuffer(); >> > Iterator<OMNode> iterator = om.getChildren(); >> > while(iterator.hasNext()){ >> > OMText text = (OMText) iterator.next(); >> > buffer.append(text.getText()); >> > } >> > >> > return buffer.toString(); >> > >> > } >> > >> > >> > Thanks & Regards >> > /Jasintha >> > >> > [1]-https://issues.apache.org/jira/browse/AXIOM-395 >> > >> > -- >> > Thanks & Regards >> > >> > Jasintha Dasanayake >> > Software Engineer. >> > >> > WSO2 Inc,|http://wso2.com >> > lean . enterprise . middleware >> > >> > mobile +94 772 916 596 , >> > >> > >> > >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> > > > > -- > Thanks & Regards > > Jasintha Dasanayake > Software Engineer. > > WSO2 Inc,|http://wso2.com > lean . enterprise . middleware > > mobile +94 772 916 596 , > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
