J'ai une application Web de printemps 4 (webapp-module.war) fonctionnant et fonctionnant localement dans Eclipse à l'aide de Java 8, Tomcat 8 et Javaconfig (no web.xml):
mais quand je déploie sur tomcat 8 (même version que j'utilise localement dans Eclipse) sur un serveur Ubuntu distant, je reçois: p> I hôte et port vérifié qui sont corrects. Il n'y a pas d'erreur dans le journal (/var/lib/tomcat8/logs/catalina.out )<<p>Le journal d'accès Contient: p> où xx.xxx.xxx.xx est l'adresse IP de ma machine locale à partir de laquelle j'essaie d'accéder à l'application Web dans mon navigateur. P> J'ai examiné:
Spring java config: tomcat Déployer sans web.xml mais il ne fournit pas vraiment de solution. P> Détails sur mon projet ci-dessous: p> sources strong> p> webinaire.java strong> p> p> p> p> P> hellocontroller.java strong> p> < / a> p>
3 Réponses :
Ajouter finalName code> comme
root code> dans votre
pom.xml code>. Cela créera root.war fichier dans votre dossier cible.
<build>
<plugins>
<!--All plugins are here -->
</plugins>
<finalName>ROOT</finalName>
</build>
J'ai essayé l'exemple Websystique. Il fonctionne sur la machine de développement Tomcat / Win 10, mais travaille sur Tomcat / RHL Server. Les deux ont TC 8.0.18. PS: Notre politique d'organisation n'autorise pas l'application Manager pour des raisons de sécurité, de sorte que ce n'est pas une option. :(
@ZENDU pour le déploiement du serveur, l'application Manager n'est pas autorisée. Avez-vous essayé avec root.war pour serveur? Vérifiez s'il vous plaît. Si une erreur existe, veuillez partager le fichier journal.
désolé précédemment, j'étais trop hâtif
Il semble que le contexte de printemps n'est pas du tout chargé. P>
Je suppose que le problème est dans cette pièce de code: p>
public class AppInitializer implements WebApplicationInitializer { @Override public void onStartup(ServletContext servletContext) throws ServletException { // Create the 'root' Spring application context AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext(); rootContext.scan("com.spring"); rootContext.setConfigLocations(new String[]{"com.spring.config.WebAppContextConfig", "com.spring.config.AppConfig"}); // Manages the lifecycle of the root application context servletContext.addListener(new ContextLoaderListener(rootContext)); // Declare dispatcher servlet. Handles requests into the application ServletRegistration.Dynamic dispatcher = servletContext.addServlet("dispatcher", new DispatcherServlet(rootContext)); dispatcher.setLoadOnStartup(1); dispatcher.addMapping("/"); } }
Pourriez-vous inclure le contexte.xml dans l'exemple?
@ sonance207 je n'ai aucun fichier context.xml dans cet exemple ... je suis désolé
s'avère que je ne faisais rien de mal dans le code. Tomcat Server est configuré pour utiliser la conformité Strict Servlet. Ce paramètre affecte plusieurs autres propriétés ( voir ici ). L'un d'entre eux est "l'attribut ressourceNlyServlets de tout élément de contexte". Définition de cette valeur sur "JSP" dans le contexte de l'application.xml a résolu le problème. P> Liste des noms séparés par des virgules des noms de servlet (tels qu'ils sont utilisés dans /web-inf/web.xml) qui attendent une ressource à présenter. Assure que les fichiers d'accueil associés à des servlets qui s'attendent à ce que la ressource soit présente (telle que le servlet JSP) ne soit pas utilisée lorsqu'il n'y a pas de ressource présente. Cela empêche les problèmes causés par la clarification du mappage de fichiers de bienvenue à la section 10.10 de la spécification Servlet 3.0. Si l'org.apache.catalina.strict_servlet_compliance System La propriété est définie sur True, la valeur par défaut de cet attribut sera la chaîne vide, sinon la valeur par défaut sera JSP. P>
blockQuote> p>
Vérifiez si un coup est à l'intérieur localhost_access_log. *. TXT B> Inside Tomcat Logs B> Dossier
Je ne sais pas ce que vous voulez dire mais j'ai mis à jour la question avec le contenu du journal d'accès le plus récent sur le serveur après avoir essayé d'accéder à l'application Web de mon navigateur. Ne montre aucune erreur cependant
Ils pourraient ressembler à des questions idiotes, mais le fichier de guerre nommé WebApp-Module? Je suppose que vous l'exécutez également dans une instance Tomcat alors qu'à Eclipse, les versions Tomcat correspondent-elles?
Oui à toutes vos questions, voir la poste mise à jour. Étrange qu'aucune erreur ne soit signalée nulle part depuis qu'il ne parvient clairement pas à y accéder sur le serveur de mon navigateur
Je pense que chaque ligne de journal ACESS affiche une erreur 404. Si vous mettez un mannequin
test.jsp code> dans
webapp code> le voyez-vous dans
/webapp-module/test.jsp code>? et sinon, dans
/test.jsp code>?
Pourriez-vous confirmer quelle est la configuration de la racine de contexte pour cette application. Vous pouvez l'obtenir à partir du fichier application.xml
Pouvez-vous vérifier l'application Tomcat Manager (
/ manager code>) sur le serveur distant? Si oui, votre application,
/ webapp-module code>, apparaît là-bas comme ayant été déployé? Voir Stackoverflow.com/a/38794114/639520 si vous ne pouvez pas accéder au
/ manager code>
Comment avez-vous construit le pot? Tous les fichiers sont-ils dedans? Essayez de l'ouvrir comme ZIP pour vérifier le contenu.
Pouvez-vous publier votre fichier journal d'application? Cela pourrait être que vous avez des erreurs au démarrage afin que l'application n'a jamais commencé.