Matt RaibleMatt Raible is a Web Developer and Java Champion. Connect with him on LinkedIn.

The Angular Mini-Book The Angular Mini-Book is a guide to getting started with Angular. You'll learn how to develop a bare-bones application, test it, and deploy it. Then you'll move on to adding Bootstrap, Angular Material, continuous integration, and authentication.

Spring Boot is a popular framework for building REST APIs. You'll learn how to integrate Angular with Spring Boot and use security best practices like HTTPS and a content security policy.

For book updates, follow @angular_book on Twitter.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

AppFuse 2.0 M5 Released - now with CRUD generation and XFire support

The AppFuse Team is pleased to announce the release of AppFuse 2.0 M5! This release marks a milestone in the features of AppFuse 2.x. This release adds CRUD code generation, full source support (just like 1.x) and XFire integration. In addition, we've fixed all the issues related to switching persistence frameworks, and you should now be able to easily switch from using Hibernate to to iBATIS or JPA. The videos have been updated for M5. The Easy CRUD with Struts 2 video shows how code generation currently works.

AppFuse 2.0 is available as a Maven archetype. For information on creating a new project using this release, please see the QuickStart Guide or the Hello World video.

If you've used AppFuse 1.x, but not 2.x, you'll want to read the FAQ and join the user mailing list if you have any questions. The Maven Reference Guide has a map of Ant » Maven commands. Maven for Newbies might also be useful if you've never used Maven before. There is some support for Ant in this release.

For more information, please see the 2.0 M5 Release Notes. If you'd like to use AppFuse offline (or download everything at once), you may want to grab the dependencies and extract them into your ~/.m2/repository directory.

The 2.0 series of AppFuse has a minumum requirement of the following specification versions:

  • Java Servlet 2.4 and JavaServer Pages (JSP) 2.0
  • Java 5 for Development (Java 1.4 for deployment using the Retrotranslator Plugin)

Comments and issues should be posted to the mailing list.

We appreciate the time and effort everyone has put toward contributing code and documentation, posting to the mailing lists, and logging issues. We also greatly appreciate the help from our sponsors, particularly Atlassian, Cenqua, Contegix, JetBrains, and KGBInternet. Without them, working on this project wouldn't be nearly as much fun.

Update: The videos are much lower quality than the ones I originally recorded (13 MB vs. 70 MB). If you want to view the high quality videos (they're much clearer), you can download them from If someone has a better way to compress these (I just used QuickTime's Export feature), please let me know.

Also, this release contains the first release of the AppFuse Maven Plugin. This plugin is largely based on Hibernate Tools. We modified many of the FreeMarker templates from Hibernate Tools to default to certain annotations, as well as clean up the formatting. These templates are currently available in AppFuse's SVN. Hopefully making them available is enough to satisfy Hibernate's LGPL license.

Posted in Java at May 23 2007, 05:49:10 PM MDT 16 Comments

I learned more by looking at appfuse source than any conference or training I ever went to. Thank you Matt.
Now the problem: When I run appfuse:full-source with M5, I get an error..
Diagnosis: svn: No entry at URL ''

Am I missing something....
Ram R

Posted by Ram R on June 18, 2007 at 04:23 PM MDT #

Thanks for your kind words Ram.

Your problem might be caused by removing the "dao.framework" property from your pom.xml's <properties> section. If adding it back in solves the problem, please enter an issue in JIRA and we'll add some better error messages to the plugin.

Posted by Matt Raible on June 18, 2007 at 04:35 PM MDT #

That was the issue. Thanks again Matt. I created a JIRA issue with trivial priority (APF-817).

Posted by Ram R on June 19, 2007 at 08:52 AM MDT #

Hi All, After extracting the full source using "mvn appfuse:full-source", I get the following error whenever I tried to run the project using "mvn jetty:run"... java.lang.NoClassDefFoundError: com/mycompany/app/webapp/listener/StartupListener (wrong name: org/appfuse/webapp/listener/StartupListener)... Before extracting the full source, everything seems to be working fine.. The issue creeps up only after extracting it. Does anyone have any idea to fix the issue... Thanks, Muthu

Posted by Muthu Velappan on November 20, 2007 at 01:04 AM MST #

Hi , I keep getting the following error when i try to get appfuse-fullsource, below is the error i am getting, I have try to include %USER_HOME%\.m2\repository in the system environment path, but the error still exist. please let me know how do I resolve this issue. Illegal character in path at index 18: file:/C:/Documents and Settings/sasha ngu /.m2/repository/org/apache/ant/ant/1.7.0/ant-1.7.0.jar [INFO] ------------------------------------------------------------------------ [INFO] Trace java.lang.IllegalArgumentException at at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39)

Posted by sasha on December 11, 2007 at 05:07 PM MST #

Sasha - this is caused by a bug in Ant 1.7.

Posted by Matt Raible on December 11, 2007 at 05:10 PM MST #

so, do you have a suggested workaround for the bug in ANT 1.7 ??


Posted by Hank on December 20, 2007 at 02:43 PM MST #

If you modify settings.xml to contain a DOS-version of the path (with no spaces), it should fix this problem. How to configure settings.xml can be found at

Posted by Matt Raible on April 29, 2008 at 09:41 AM MDT #

Guys one of the workarounds is to switch to lower versions of ant... it's a hack but it works... You can download ant-1.6.5 and place it in your $M2_REPO\repository\org\apache\ant\ant\1.7.0 just rename downloaded version to ant-1.7.0(really bad) but it is easiest workaround.... until bug is fixed in 1.7.0 cheers!

Posted by Mohit Manrai on May 17, 2008 at 09:49 AM MDT #

Initially i tried to find settings.xml and see the help maven guys had provided. I couldn't understand where to make change for DOS-version of path. But anyway, the dirty trick of Mohit Manrai is great. Thank you...

Posted by tony on June 05, 2008 at 12:50 PM MDT #

i am new to hibernate, spring and springmvc & watch the video u provided above. it is pretty interesting and good for beginning appfuse. are there any other videos available on appfuse.

Posted by anu on July 29, 2008 at 04:48 AM MDT #

also good e-book is also find by me. So if anybody knows good one on appfuse dont forget to notify me.....

Posted by anu on July 29, 2008 at 04:51 AM MDT #

HI Matt,

I have created an AppFuse JSF project and am able to build the war and deploy into JBOSS but while deploying get the following exception

18:24:17,875 INFO  [TomcatDeployment] deploy, ctxPath=/myproject, vfsUrl=Oasis-1.0-SNAPSHOT.war
18:24:20,078 ERROR [[/myproject]] Error configuring application listener of class org.appfuse.webapp.listener.StartupListener
java.lang.ClassNotFoundException: org.appfuse.webapp.listener.StartupListener

Obviously JBOSS can't find the JAR. Where should I be looking for it??In the Maven Repo?? Please advise. This is urgent.

Posted by on March 08, 2009 at 01:24 AM MST #

Please send AppFuse related e-mails to the mailing list ([email protected]) - that way the correspondence is archived for future users. If you're not subscribed, send a blank e-mail to [email protected] to subscribe. You can also post to the mailing list in a forum-like fashion or find out more from the AppFuse wiki.


Posted by Matt Raible on March 08, 2009 at 08:52 PM MDT #

Error configuring application listener of class org.appfuse.webapp.listener.StartupListener

java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext

Please Please Please just a short answer on how I get around this. I have the spring-context files in my maven script. All due respect to maven and appfuse but this is exactly why RubyOnRails is kicking JEE in the butt. I just wanna work on my problem not spend my days editing XML files!

Posted by eric on May 10, 2009 at 04:19 AM MDT #

To fix this problem, try adding the following to your pom.xml:


Posted by Matt Raible on May 10, 2009 at 01:36 PM MDT #

Post a Comment:
  • HTML Syntax: Allowed