Facelet tag library engine not working properly

I cannot pack taglibrary in a war file. I moved the tags from the project to an additional library, the current current project depends. I placed the taglibrary file in the directory of the META-INFcontainer containing the tags (as described here ). But the page does not work:

Expression Error: Named Object: eu.barbucha.barbatag.simple.PropertyTag not found.

The server can find the taglibrary. Otherwise, the page works, only one file appears:

Warning: This page calls for XML namespace http://barbucha.eu/tags declared with prefix br but no taglibrary exists for that namespace.

Thus, the question arises: why does the server find only the descriptor, but not the classes? When I copy the classes from WEB-INF/lib/barbatag.jarto WEB-INF/classesand reload the webapp in the admin console, the page starts working. The server also finds UI components only if they are involved directly in the application classes, but not in the bank stored in the directory WEB-INF/lib. On the other hand, the server loads the taglib handle from the jar. This is really confusing ... Critical class declaration:

package eu.barbucha.barbatag.simple;    

@FacesComponent("eu.barbucha.barbatag.simple.PropertyTag")
public class PropertyTag extends UIComponentBase { ... }

Critical Tag Definition:

<tag>
    <display-name>The component taking values from a property file</display-name>
    <tag-name>property</tag-name>
    <component>
        <component-type>eu.barbucha.barbatag.simple.PropertyTag</component-type>
    </component>
</tag>

One potentially important point: I use Spring MVC.

+1
source share
1 answer

/META-INF/faces-config.xml JAR, JSF JAR JSF, @FacesComponent. JSF JAR ( , ).

+3

All Articles