1. Preinstalación
1. Descargar el proyecto de prueba
Vamos a la PAE y descargamos el "Paquete de integracion Java 8" del 19/5/2022
2. Creamos un Workspace (WS_CLAVE) y dentro de él, una carpeta (Por ejemplo SP2 que es el "artifactId" que se indica en el pom.xml) dentro de un Workspace Java
3. Abrimos el fichero zip descargado y copiamios el contenido de "Paquete_Integracion_Java_Clave_2_0" dentro de esa carpeta
4. Ahora desde Eclipse importamos (File - Import -Maven - Existing Maven Projects) Y le indicamos la carpeta SP2
5. Una vez importado , hay que seleccionar el Java 1.8 en Eclipse
6.a. Establecemos la variable de entorno CLAVE_SP2_CONFIG_REPOSITORY que apunte donde se encuentra la carpeta Config. En este caso es: /home/ximo/MyWorkspaces/WS_CLAVE/SP2/Config/. Para ello editamos el fichero ~/.profile y le añadimos esta línea
export CLAVE_SP2_CONFIG_REPOSITORY="$HOME/MyWorkspaces/WS_CLAVE/SP2/Config/"
Para asegurar que ha cogido las variables de entorno, en una ventana de shell escribimos
source ~/.profile
NOTA: Para no tener problemas con la localización de la carpeta "Config", se podría copiar dicha carpeta a un ruta que no dependiera del proyecto como /home/ximo/CLAVE20_CONF, de esta manera si quisiéramos tener una segunda versión del proyecto, no tendríamos que tocar nada.
6.b. Alternativamente a la opción a), podemos modificar el fichero src/main/resources/spEnvironmentContext y cambiar
<constructor-arg value="#{ systemProperties['CLAVE_SP2_CONFIG_REPOSITORY'] ?: systemEnvironment['CLAVE_SP2_CONFIG_REPOSITORY'] }" />
por
<constructor-arg value="/home/ximo/MyWorkspaces/WS_CLAVE/SP2/Config/" />
7. A veces puede dar problemas que no encuentra algunas dependencias que se enuentran en la carpeta local "Dependencias"; si es el caso hay que modificar el pom.xml, casi al final del archivo, en la zona de <repositories> pues es incapaz de encontrar las dependencias, para ello cambiamos
<url>file://Dependencias</url> por
<url>file://${project.basedir}/Dependencias </url>
y guardamos el fichero pom.xml
7. Ahora clicamos con el boton derecho sobre el proyecto Maven - Update Project y deberian de desaparecer los problemas de compilación
8. Abrir la ventana de Servers (si no esta hay que añadirla en Window -Show View -Other - Servers ) y añadir un servidor Tomcat 8.5 y en
9. Clicamos con el boton derecho sobre el proyecto Run As - Run on Server, seleccionar el Tomcat 8.5 que hemos instalado y al menos arranca:
10. Comprobamos que tengamos esta estructura de ficheros
Y desde el sistema operativo
Ahora viene la parte difícil de entender lo que hace.
2. Posibles problemas (si no ha arrancado)
1. Si sale este error:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'placeholderConfig' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Cannot resolve reference to bean 'securityConfigFileWithPath' while setting bean property 'locations' with key [0]; nested exception is org.springframework.beans.factory.BeanExpressionException: Expression parsing failed; nested exception is org.springframework.expression.spel.SpelEvaluationException: EL1021E: A problem occurred whilst attempting to access the property 'spConfigRepository': 'Error creating bean with name 'spConfigRepository' defined in class path resource [spEnvironmentContext.xml]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.lang.String]: Constructor threw exception; nested exception is java.lang.NullPointerException: Cannot invoke "java.lang.StringBuffer.toString()" because "buffer" is null'
Hay que vigilar en la "Console" a ver si aparece un a referencia a un JDK que no sea el 1.8
INFORMACIÓN: Java Home: /home/edu/MyPrograms/eclipse2022-03/plugins/org.eclipse.justj.openjdk.hotspot.jre.full.linux.x86_64_17.0.2.v20220201-1208/jre
Como se puede ver hace referencia a java 17. Por tanto hay que arreglar el Java Build path para que apunte donde toca (jdk o jre 8).
2. Si sale este error:
org.springframework.beans.factory.BeanInitializationException: Could not load properties; nested exception is java.io.FileNotFoundException: /home/edu/MyWorkspaces/WS_CLAVE/SP2/ConfigsecurityConf.xml (No existe el archivo o el directorio)
Es que nos hemos olvidado de de indicar en el punto 6.a o 6.b la barra final (/) del path
/home/ximo/MyWorkspaces/WS_CLAVE/SP2/Config/
A veces parece que está bien escrito la ruta anterior y no lo está. Vale la pena entrar en un navegador de archivos y copiar la ruta y pegarla. Estos errores dan mucha guerra y son difíciles de encontrar