Creating hybrid Web-Applications with ICEFaces and Maven

Since ICEFaces is almost like ZK a container-agnostic Framework, I wanted to create an additional Archetype for creating Web-Apps with ICEFaces. This could have been any other JSF component framework, but ICEFaces happens to have their own Portlet-Bridge, which comes in handy when deploying to a portal. I tried RichFaces before, but RichFaces seems to be a major pain when trying to run in a non-ejb container like Tomcat. Maybe things will get better with the soon to be released JBoss Portlet-Bridge 2.0, but I doubt it, because its not really in their scope.
And because the settings are almost identical (besides the ICEFaces specific ones) like the ZK Archetype, i just post the svn url here:

checkout the archetype with:

svn co


mvn clean install

to deploy the archetype to your local maven repository. After that you are able to create your own hybrid ICEFaces Web-Applications with:

mvn archetype:generate -DarchetypeGroupId=de.fabianmaass.archetypes.hybrid.icefaces -DarchetypeArtifactId=hybrid-icefaces-webapp -DarchetypeVersion=1.0-SNAPSHOT

Again, you have to adjust the path of your local Tomcat/Liferay Installations in the pom.xml, or else the build will fail.


When you changed it, simply run:

mvn clean install

in your newly created project and voila: you can run the application in both servlet- and portlet container 🙂

You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.


  • mcahornsirup says:

    ICEFaces sucks, as soon as you try to accomplish more complex UI layouts… but now with there enterprise strategy, you can buy e.g. rounded corners for only 500$ extra – wow 😉

  • Philip Kerrigan says:

    I tried following the instructions above but got the following error on generating the web app from the archetype.

    groupId: de.fabianmaass
    artifactId: ICEFacesHybridWebApp
    version: 1.0-SNAPSHOT
    package: de.fabianmaass
    [ERROR] org.apache.maven.archetype.exception.InvalidPackaging: Unable to add module to the current p
    roject as it is not of packaging type ‘pom’
    org.apache.maven.archetype.exception.ArchetypeGenerationFailure: org.apache.maven.archetype.exceptio
    n.InvalidPackaging: Unable to add module to the current project as it is not of packaging type ‘pom’

    at org.apache.maven.archetype.generator.DefaultFilesetArchetypeGenerator.generateArchetype(D
    at org.apache.maven.archetype.generator.DefaultArchetypeGenerator.processFileSetArchetype(De
    at org.apache.maven.archetype.generator.DefaultArchetypeGenerator.generateArchetype(DefaultA
    at org.apache.maven.archetype.generator.DefaultArchetypeGenerator.generateArchetype(DefaultA
    at org.apache.maven.archetype.generator.DefaultArchetypeGenerator.generateArchetype(DefaultA
    at org.apache.maven.archetype.DefaultArchetypeManager.generateProjectFromArchetype(DefaultAr
    at org.apache.maven.archetype.mojos.CreateProjectFromArchetypeMojo.execute(CreateProjectFrom
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycl
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultL
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleE
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(
    at org.apache.maven.DefaultMaven.doExecute(
    at org.apache.maven.DefaultMaven.execute(
    at org.apache.maven.cli.MavenCli.main(
    at org.apache.maven.cli.compat.CompatibleMain.main(
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(
    at java.lang.reflect.Method.invoke(
    at org.codehaus.classworlds.Launcher.launchEnhanced(
    at org.codehaus.classworlds.Launcher.launch(
    at org.codehaus.classworlds.Launcher.mainWithExitCode(
    at org.codehaus.classworlds.Launcher.main(
    Caused by: org.apache.maven.archetype.exception.InvalidPackaging: Unable to add module to the curren
    t project as it is not of packaging type ‘pom’