[
https://issues.jboss.org/browse/JBESB-3680?page=com.atlassian.jira.plugin...
]
Tom Fennelly closed JBESB-3680.
-------------------------------
Resolution: Rejected
OK... there's actually a solution to this issue, without any changes to
JBossESB/Smooks.
When using FreeMarker's nodemodel stuff on namespaced XML, you must define the
namespaces in the FreeMarker template ala
http://freemarker.org/docs/xgui_imperative_learn.html#autoid_73
So, taking the example attached to this JIRA. The freemarker template must change from...
{code}
${item.nachname}|${item.eintrittsdatum}|Erstellungszeit
hhmmss|U|PersNr|${item.anrede}|Name|${item.vorname}|Geb.Datum|Funktion||Verteilstelle|Eintritt|Austritt|
{code}
To...
{code}
<#ftl
ns_prefixes={"acme":"http://acme.com/ns"}>
${item["acme:nachname"]}|${item["acme:eintrittsdatum"]}|Erstellungszeit
hhmmss|U|PersNr|${item["acme:anrede"]}|Name|${item["acme:vorname"]}|Geb.Datum|Funktion||Verteilstelle|Eintritt|Austritt|
{code}
Then it works.
Freemarker error when input files contains namespace declaration
----------------------------------------------------------------
Key: JBESB-3680
URL:
https://issues.jboss.org/browse/JBESB-3680
Project: JBoss ESB
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Transformation Service
Affects Versions: 4.10 CP1
Reporter: Tom Cunningham
Assignee: Tom Fennelly
Fix For: 4.10 CP1
Using an input file which contains a namespace declaration for a FreeMarker
transformation leads to the following error:
13:58:42,859 ERROR [runtime]
Error on line 1, column 3 in orderLinesFrag.ftl
Expecting a string, date or number here, Expression item.nachname is instead a
freemarker.ext.dom.NodeListModel
The problematic instruction:
----------
==> ${item.nachname} [on line 1, column 1 in orderLinesFrag.ftl]
----------
Java backtrace for programmers:
----------
freemarker.core.NonStringException: Error on line 1, column 3 in orderLinesFrag.ftl
Expecting a string, date or number here, Expression item.nachname is instead a
freemarker.ext.dom.NodeListModel
at freemarker.core.Expression.getStringValue(Expression.java:126)
at freemarker.core.Expression.getStringValue(Expression.java:93)
at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
at freemarker.core.Environment.visit(Environment.java:208)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:208)
at freemarker.core.Environment.process(Environment.java:188)
at freemarker.template.Template.process(Template.java:232)
at
org.milyn.templating.freemarker.FreeMarkerTemplateProcessor.applyTemplate(FreeMarkerTemplateProcessor.java:356)
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira