Submitting an invalid flight number (e.g. KL9999) bubbles up as an EmptyResultDataAccessException instead of NoSuchFlightException. This is because the JpaFlightDao uses query.getSingleResult(), which can throw a NoResultException instead of returning null. Submitting an invalid username has a similar issue.
I've created a fix in the JPA DAO's to ensure they catch a NoResultException and re-throw it as a business exception. In the case of an invalid username I added a NoSuchUsernameException business exception.
See attached patch for a root-level Eclipse project named 'airline' created with 'mvn eclipse:eclipse' from the samples directory and connected to the Spring-WS SVN repository.