Respected Sir,

I have to use smooks mediator to convert large xml to csv format. But
getting errors. Please Guide.
Here I have book structure(mmodel) inside two tags library and library1.

Below is the sample example with less  data :

*My input is :*

<?xml version="1.0"?>
<catalog>
<library>
<book id="bk101">
<name>a</name>
<title>b</title>
</book>
<book id="bk102">
<name>c</name>
<title>d</title>
</book>
</library>
<library1>
<book id="bk103">
<author>e</author>
<title>f</title>
</book>
<book id="bk104">
<author>g</author>
<title>h</title>
</book>
</library1>
</catalog>


*SmooksConfig.xml :*
<?xml version="1.0" encoding="UTF-8"?>
<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd";
    xmlns:ftl="http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd";>
<params>
<param name="stream.filter.type">SAX</param>
<!-- <param name="inputType">input.xml</param>
         <param name="input.xml"
type="input.type.actived">File:/C:\Work\2016\09_ESB_Auto_Mail_rpts\TestFiles\TestFileXMLCSVMap.xml
        </param>  -->
<param name="default.serialization.on">true</param>
</params>
<resource-config selector="book">
<resource>org.milyn.delivery.DomModelCreator</resource>
</resource-config>

<ftl:freemarker applyOnElement="library">
<ftl:template>
<!--author;title
<?TEMPLATE-SPLIT-PI?>
    -->
</ftl:template>
</ftl:freemarker>

<ftl:freemarker applyOnElement="book">
<ftl:template>
<!--${book.name},${book.title}
-->
</ftl:template>

</ftl:freemarker>
<ftl:freemarker applyOnElement="library1">
<ftl:template>
<!--<#ftl >
<?TEMPLATE-SPLIT-PI?>
    -->
</ftl:template>
</ftl:freemarker>

<ftl:freemarker applyOnElement="book">
<ftl:template>
<!--<#ftl >
-->
</ftl:template>

</ftl:freemarker>
</smooks-resource-list>

*desired output :*

author;title
a,b
c,d
e,f
g,h


*Actual Exception  :*

018-07-15 21:59:03,584] [EI-Core] ERROR - SmooksMediator Failed to filter
source.
org.milyn.SmooksException: Failed to filter source.
at org.milyn.delivery.sax.SmooksSAXFilter.doFilter(SmooksSAXFilter.java:97)

Caused by: org.milyn.delivery.sax.SAXWriterAccessException: Illegal access
to the element writer for element 'book' by SAX visitor
'org.milyn.templating.freemarker.FreeMarkerTemplateProcessor'.  Writer
already acquired by SAX visitor
'org.milyn.templating.freemarker.FreeMarkerTemplateProcessor'.  See
SAXElement javadocs (http://milyn.codehaus.org/Smooks).  Change Smooks
visitor resource configuration.
at
org.milyn.delivery.sax.SAXHandler$WriterManagedSAXElement.throwSAXWriterAccessException(SAXHandler.java:632)
at
org.milyn.delivery.sax.SAXHandler$WriterManagedSAXElement.getWriter(SAXHandler.java:597)
... 19 more
[2018-07-15 21:59:03,589] [EI-Core] ERROR - SequenceMediator Failed to
filter source. Caused by Failed to filter source.
org.wso2.carbon.mediator.service.MediatorException: Failed to filter
source. Caused by Failed to filter source.
at
org.wso2.carbon.mediator.transform.SmooksMediator.handleException(SmooksMediator.java:265)
*Actual output : *No file is getting generated.

With Regards,
Aditya
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to