I’m working on an ICEfaces 3 application and I have the following XHTML file:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ice="http://www.icesoft.com/icefaces/component"
xmlns:icecore="http://www.icefaces.org/icefaces/core"
xmlns:ace="http://www.icefaces.org/icefaces/components"
>
<h:head></h:head>
<h:body>
<ui:composition template="template/main-template.xhtml"> ... </ui:composition>
</h:body>
</html>
Using this template without icefaces-compat included in the WAR works well (as long as I only use ACE components obviously). But now I like to use some of the ice: components and therefore need the -compat JAR. But when adding this JAR to the WAR the following error occurs:
12.04.2012 13:56:32 org.icefaces.impl.event.BridgeSetup isListenerForSource
WARNING: ICEfaces configured for view /configuration.xhtml but h:head and h:body components are required
This error also occurs when I completely remove the ui:composition tag from the side, i.e. the <h:body> tag is empty.
I’m happy to provide further information but right now I’m not sure what is important as the only difference that I do is that I add the -compat library to the WAR.
I finally came up with the very simple solution: I forgot to add the WEB-INF/faces-config.xml file. This seems to be fine as long as ACE etc is used, but as soon as the -compat jars are used, it seems to be necessary. The file itself needs to only include: