I have a composite component named <my:foo>
and I'm building another composite component named <my:bar>
. But when I attempt to use <my:foo>
inside the <cc:implementation>
of <my:bar>
, the following exception is been thrown:
<my:foo>
Tag Library supports namespace: http://java.sun.com/jsf/composite/mycomponents, but no tag was defined for name: foo
How is this caused and how can I solve it?
This is caused by a bug which was introduced in Mojarra 2.1.8, continued in 2.1.9 and is fixed in 2.1.10. This bug causes that composite component's own XML namespace cannot be declared in a root XML element like
<ui:component>
/<ui:composition>
/<html>
/etc as follows:This would result in the following exception when you attempt to nest
<my:foo>
inside the<cc:implementation>
.The current workaround, apart from downgrading to 2.1.7 and waiting for 2.1.10 to be released, is to move the XML namespace declaration into the
<cc:implementation>
.See also: