-
JDK 11.- Para compilar y ejecutar la aplicación.
-
WildFly 33.- Para desplegar la aplicación se necesita un servidor de aplicaciones Jakarta EE 10 disponible en wildfly.org
-
Maven 3.- Para compilar y empaquetar se utiliza Apache Maven.
Para compilar se debe ejecutar:
mvn clean package
Luego, copiar el archivo target/recepcion.war
a la carpeta standalone/deployments
de un servidor de aplicaciones WildFly.
Para almacenar archivos pdf temporalmente y acceder a ellos por HTTP se debe crear un directorio y asignarle permisos al usuario de wildfly.
sudo mkdir /opt/wildfly-static >/dev/null 2>&1 &&
sudo chown -RH wildfly: /opt/wildfly-static
Después, agregar las siguientes lineas en el archivo /opt/wildfly/standalone/configuration/standalone.xml
<host name="default-host" alias="localhost">
<location name="/static" handler="dirPdfs"/>
...
<!--
</servlet-container>
<handlers>-->
<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
<file name="dirPdfs" path="/opt/wildfly-static"/>
Para probar guardando un archivo se puede ejecutar los siguientes comandos desde terminal MacOS o utilizar Postman:
export BASE_URL="http://localhost:7776/recepcion/receiveDocument"
export BASE64=$(base64 -i test.pdf | tr -d '\n')
export JSON="{\"nombreDocumento\":\"test.pdf\",\"archivo\":\"${BASE64}\"}"
curl -s -H "Content-Type: application/json" -X POST -d "${JSON}" "${BASE_URL}/saveSignedFile"
Luego, enviamos la ruta absoluta del archivo guardado anteriormente para probar el servicio:
export RUTA_DOC_A_VERIFICAR="/opt/wildfly-static/test.pdf"
export URL_FINAL=${BASE_URL}/checkSignedFileExists?location=${RUTA_DOC_A_VERIFICAR}
curl -s -H "Content-Type: application/json" -X GET ${URL_FINAL}
También se puede enviar la url del archivo guardado anteriormente:
export URL_DOC_A_VERIFICAR="http://localhost:7776/static/test.pdf"
export URL_FINAL=${BASE_URL}/checkSignedFileExists?location=${URL_DOC_A_VERIFICAR}
curl -s -H "Content-Type: application/json" -X GET ${URL_FINAL}
Usamos SemVer para versionar.
Este proyecto está licenciado bajo la licencia GPL v3. Revise el archivo LICENSE para más detalles.