um ViewResolver, vai ser dado um padrao de Spring que simplesmente encaminha a URL correspondente ao nome da visao especificada. We will modify this later on. Temos que especificar um log. Usando Tomcat, as mensagens de log soao encontradas no arquivo 'catalina.out' que esta localizado em'${appserver.home}/log'.Se voce estiver usando uma IDE, voce vai querer configurar o caminho de construcao do seu projeto, adicionando os jars na pasta 'lib'. Voce tambem vai querer adicionar servlet-api.jar do seu servlet container da pasta 'lib' ('${appserver.lib}'). Adicionando estes no seu caminho de construcao deve resolver com exito todas as declaracoes de importacao do arquivo 'HelloController.java'.1.9. Escrevendo o teste para seu ControllerO teste e uma parte vital do desenvolvimento de software. E tambem uma pratica fundamental do desenvolvimento agil. Descobrimos que o melhor momento para escrever testes e durante o desenvolvimento, nao depois, por isso mesmo que nosso controller nao tenha uma logica complexa, iremos escrever o teste. Isso nos permitira fazer alteracoes nele no futuro com confianca. Vamos criar uma nova pasta em 'springapp' chamada 'test'. Este e a estrutura onde todos nossos testes vao estar, sendo um espelhamento da arvore 'springapp/src'.Crie a classe de teste chamada 'HelloControllerTests' estendendo de JUnit's classe de teste TestCase. E um teste de unidade que verifica se o nome da view retornado por handleRequest() corresponde ao nome da view esperada: 'hello.jsp'.'springapp/test/springapp/web/HelloControllerTests.java':package springapp.web;import org.springframework.web.servlet.ModelAndView;import springapp.web.HelloController;import junit.framework.TestCase;public class HelloControllerTests extends TestCase { public void testHandleRequestView() throws Exception{ HelloController controller = new HelloController(); ModelAndView modelAndView = controller.handleRequest(null, null); assertEquals("hello.jsp", modelAndView.getViewName()); }}Para executar o teste (e todos os testes que vamos escrever), precisamos adicionar uma tarefa de teste no nosso script Ant 'build.xml'.Primeiro, copie junit-3.8.2.jar de 'spring-framework-2.5/lib/junit' para 'war/WEB-INF/lib'. Em vez de criar uma unica tarefa para compilar os testes e depois executa-los, vamos dividi-las em duas tarefas distintas: 'buildtests' e 'tests' que depende dos 'buildtests'.Se voce estiver usando uma IDE, voce pode querer executar os testes de dentro da sua IDE. Configure o caminho de construcao do seu projeto, adicionando o junit-3.8.2.jar.'springapp/build.xml':<?xml version="1.0"?><project name="springapp" basedir="." default="usage"> <property file="build.properties"/> <property name="src.dir" value="src"/> <property name="web.dir" value="war"/> <property name="build.dir" value="${web.dir}/WEB-INF/classes"/> <property name="name" value="springapp"/> <propertyname="test.dir" value="test"/> <path id="master-classpath"> <fileset dir="${web.dir}/WEB-INF/lib"> <include name="*.jar"/> </fileset> <!-- We need the servlet API classes: --> <!-- * forTomcat 5/6 use servlet-api.jar --> <!-- * for otherapp servers - check the docs --> <fileset dir="${appserver.lib}"> <include name="servlet*.jar"/> </fileset> <pathelement path="${build.dir}"/> </path> <target name="usage"> <echo message=""/> <echo message="${name} build file"/> <echo message="-----------------------------------"/> <echo message=""/> <echo message="Available targets are:"/> <echo message=""/> <echo message="build --> Buildthe application"/> <echo message="deploy -->Deploy application as directory"/> <echo message="deploywar --> Deploy application as a WAR file"/> <echo message="install -->Install application in Tomcat"/> <echo message="reload -->Reload application in Tomcat"/> <echo message="start --> StartTomcat application"/> <echo message="stop --> StopTomcat application"/> <echo message="list --> ListTomcat applications"/> <echo message=""/> </target> <target name="build" description="Compile main source tree java files"> <mkdir dir="${build.dir}"/> <javac destdir="${build.dir}" source="1.5" target="1.5" debug="true" deprecation="false" optimize="false" failonerror="true" includeantruntime="false"> <src path="${src.dir}"/> <classpath refid="master-classpath"/> </javac> </target> <target name="deploy" depends="build" description="Deploy application"> <copy todir="${deploy.path}/${name}" preservelastmodified="true"> <fileset dir="${web.dir}"> <include name="**/*.*"/> </fileset> </copy> </target> <target name="deploywar" depends="build" description="Deploy application as a WAR file"> <war destfile="${name}.war" webxml="${web.dir}/WEB-INF/web.xml"> <fileset