Al hacer el
proyecto web del curso de Spring de Píldoras Informáticas con
Visual Studio Code me he encontrado con varios problemas. Todavía lo estoy haciendo y aún estoy resolviendo los problemas que me surgen. A medida que los vaya resolviendo iré actualizando está página.
Empecemos por el primer problema:
Crear un proyecto web dinámico en java con VSCode.
Lo resolví en
VSCode creando un proyecto
maven (Create Maven Project).
Ctl+Shift+P y
create maven project. Después seleccionamos un arquetipo (Archetype), para ello pulsamos en
More, que es la primera entrada que aparece después de seleccionar maven. Para no buscar entre tantos, tecleamos servlet y seleccionamos
Servlet31-archetype-webapp, por lo menos yo seleccioné ese. Lo demás es fácil, en el
group_id no hace falta que introduzcamos la lista de paquetes que dice en el tutorial, ya que no lo crea como hace Spring boot.
El siguiente problema que me encontré fue cómo correr tomcat directamente en VSCode.
Pues instalamos la extensión
tomcat for java. En ella tenemos que indicar el tomcat que vamos a utilizar. Una vez tengamos nuestro código tenemos que crear el fichero
.war. Para ello abrimos la carpeta del proyecto en un terminal (en el de VSCode por ejemplo) y ejecutamos el siguiente comando:
mvn clean package
Una vez creado el .war vamos al archivo que debe estar en la carpeta
target. Y en ella pulsamos botón derecho del ratón, y pulsamos en
Run on Tomcat Server. Nos vamos al apartado
TOMCAT SERVERS en el explorador y al pulsar con botón derecho del ratón pulsamos en
Open in Browser. Y se abrirá en el navegador.
Otro problema más fue la configuración de los archivos web.xml y spring_mvc_servlet.xml:
Para ello sustituimos el web.xml del proyecto por el que descargamos del curso.
Y en el archivo spring_mvc_servlet.xml tenemos que hacer unos cambios. En la línea:
<context:component-scan base-package="controller" />
puse que escaneara el paquete
controller, ya que es ahí es donde metí los controladores como
HolaAlumnosController.java.
El último problema hasta hoy (24/6/2020) ha sido los recursos estáticos como css o imágenes:
Para ello en spring_mvc_servlet.xml la etiqueta de
mvc:resources queda así:
<mvc:resources mapping="/recursos/**" location="/WEB-INF/recursos/" cache-period="1" />
Otra cosa muy importante es que como es un proyecto Maven, hay que descargar las dependencias, las que uso son por ahora:
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>7.0.0.Alpha3</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.7.RELEASE</version>
</dependency>
<dependency>
con fecha de 26/6/2020.
Hasta hoy son los problemas que he encontrado.