Je n'arrive pas à me connecter aux extrémités de mon application Java déployée sur AWS Elastic Beanstalk. L'application gère un certain nombre de requêtes POST et est destinée à servir une application mobile, de sorte que le serveur lui-même n'a pas de fichiers statiques. J'ai utilisé le framework Spark Java, qui trouve les points de terminaison correctement lorsque je teste sur Localhost, mais pas sur AWS Elastic Beanstalk.Déploiement de l'application Spark-Java (Gradle, Maven) sur AWS Elastic Beanstalk
Je peux déployer la guerre éclatée sur EB (exécutant le serveur Web Tomcat), mais toutes les demandes que j'envoie renvoient une erreur 404 Erreur: ressource introuvable. Spark java fonctionne sur le serveur Jetty intégré, donc pour fonctionner sur Tomcat, j'ai fait comme suggéré dans leur documentation (http://sparkjava.com/documentation#other-web-server): J'ai implémenté l'interface SparkApplication, en déplaçant tous les endpoints de main() vers init() et j'ai ajouté le code suggéré dans le fichier web.xml. Le .war téléchargé contient META-INF avec web.xml, lib (avec les librairies gradle) et classes (avec ma sortie compilée). Encore une fois, pas de fichiers statiques.
Plus de détails:
J'utilise le plug-in Elastic Beanstalk IntelliJ (Ultimate) pour déployer et à ce stade je l'ai testé que ce ne diffère pas de déployer un .war directement sur le tableau de bord EB. J'ai ouvert à tous les ports et connexions dans les paramètres de sécurité pour éliminer tout problème de connectivité. Je crois que c'est juste une question de la servlet ne pas cartographier les URL. Aucune suggestion?
Ok, laissez-moi essayer le .jar –
C'est une option avec AWS et plus naturelle pour Spark Java. J'ai lancé Spark sous Tomcat comme une guerre - une chose à garder à l'esprit est que Tomcat donnera un contexte qui est le nom de guerre que vous devez ajouter à l'URL avant vos chemins API REST. Donc si vous avez blah.war sur 8090, localhost: 8090/blah/myrestpath, pas localhost: 8090/myrestpath. –
Merci! Il s'est avéré être un problème de port. –