Because you didn't fully bring in the mvc namespace. And you have aop namespace partly in there too. xml namespaces are about xml, and Spring creates a number of xml namespaces. You need two parts in the header to add a namespace.
<!-- This required so that Spring can recognize our annotated beans -->
<!-- This required so that Spring can recognize certain annotations,
For example @Controller and @Service. Make sure you set the correct base-package
<context:component-scan base-package="org.krams.tutorial" />
This is responsible for automatically converting our custom POJO to JSON.
Make sure you have Jackson in your classpath
I get the error message cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'mvc:annotation-driven'.