web-dev-qa-db-fra.com

Le serveur d'origine n'a pas trouvé de représentation actuelle pour la ressource cible ou n'est pas disposé à divulguer celle qui existe. sur le déploiement de tomcat

J'ai construit une application utilisant Spring avec Eclipse IDE. Lorsque je lance le projet à partir d'Eclipse IDE, tout va bien, mais lorsque je compresse le projet maven en tant que fichier war et que je le déploie pour séparer Tomcat, j'ai ce problème.

The Origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

Ceci est un extrait de configuration de mon fichier xml

<!-- View Resolver -->
    <beans:bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <beans:property name="prefix" value="/WEB-INF/pages/" />
        <beans:property name="suffix" value=".jsp" />
    </beans:bean>

J'essaie d'accéder à ce contrôleur 

@RequestMapping(value = {"/welcome", "/"})
    public String defaultPage() {
            return "Web Service data successfuly consumed";


    }

quelqu'un avec une idée pourquoi cela échoue sur déployé à tomcat?

11
Blaze

J'ai lutté avec ce problème plusieurs fois.

La solution que j'utilise actuellement est l'application Web (ou le dossier dans lequel vous avez conservé les vues, comme jsp) est en cours de déploiement Assembly.

Pour ce faire, dossier Right click on the project > Build Path > Configure Build path > Deployment Assembly > Add(right hand side) > Folder > (add your jsp. Dans le cas par défaut, il s'agit de src/main/webapp)

Vous pouvez également obtenir cette erreur après avoir tout corrigé, mais sur le JSP, vous placez la balise d'ancrage à l'ancienne (j'ajoute cette option si cela aide quelqu'un d'autre avec le même problème). 

J'ai eu la syntaxe suivante sur le jsp. <a href="/mappedpath">TakeMeToTheController</a> et j'ai continué à voir l'erreur mentionnée dans la question. Toutefois, le remplacement de l’étiquette par celle illustrée ci-dessous a résolu le problème.

<a href=" <spring:url value="/mappedpath" /> ">TakeMeToTheController</a>
7
tadtab

J'ai reçu la même erreur lorsque je travaillais dans une application Spring Boot, car il est facile de le faire avec localhost:8080/hello/World mais lorsque vous avez créé l'artefact et que vous l'avez déployé sur Tomcat, vous devez passer à localhost:8080/<artifactName>/hello/World

5
Ryan D

Si vous développez une application de démarrage de printemps, ajoutez "SpringBootServletInitializer" comme indiqué dans le code suivant à votre fichier principal. Parce que sans SpringBootServletInitializer, Tomcat le considérera comme une application normale, mais pas comme une application de démarrage Spring.

@SpringBootApplication
public class DemoApplication extends *SpringBootServletInitializer*{

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
         return application.sources(DemoApplication .class);
    }

    public static void main(String[] args) {
         SpringApplication.run(DemoApplication .class, args);
    }
}
3
JEETHESH KARKERA

Le même problème est résolu en créant un fichier geoexplorer.xml dans /opt/Apache-Tomcat-8.5.37/conf/Catalina/localhost Le contenu du fichier geoexplorer.xml 

<Context displayName="geoexplorer" docBase="/usr/share/opengeo/geoexplorer" path="/geoexplorer"/>
0
Rakeshwar Verma

Tentative d'exécuter un servlet dans Eclipse (clic droit + "Exécuter sur le serveur") J'ai rencontré le même problème: "Statut HTTP: 404/Description: le serveur d'origine n'a pas trouvé de représentation actuelle de la ressource cible ou n’est pas disposé à révéler qu’il en existe un ".

Finalement, j'ai trouvé le problème dans un endroit inattendu: dans Eclipse, l'option "Construire automatiquement" n'était pas définie. Ainsi, le servlet n'a pas été compilé et aucun fichier "myServlet.class" n'a été déployé sur le serveur (dans mon cas, dans le chemin .wtpwebapps/projectXX/WEB-INF/classes/XXpackage /). Construction du projet manuellement et le redémarrage du serveur a résolu le problème.

Mon environnement: Eclipse Neon.3 version 4.6.3, Tomcat-Version 8.5.14., OS Linux Mint 18.1.

0
Buffy Underrun

Je faisais face au même problème. 

Lorsque je clique avec le bouton droit -> exécuter sur le serveur, puis sélectionne mon serveur manuellement, cela fonctionne.

Faire

Alt+Shift+X

puis sélectionnez manuellement votre serveur. Cela pourrait aider.

0
eVader

Je fais également face au même problème et je le résous en mettant le fichier web.xml et le fichier applicationcontext.xml dans le dossier WEB-INF.

J'espère que cela t'aides :)

0
krati

Dans Eclipse, allez à Projet -> cliquez sur Build automatiquement après que vous essayez d’exécuter 

0
Aiyaz Sattar

S'il s'agit d'un projet maven, Maven Update résoudra le problème - Cliquez avec le bouton droit sur Projet -> Maven -> Mettre à jour le projet et démarrez votre projet normalement.

0
Rudy

solution one: Changez la version d'Apache Tomcat (la plus récente est préférable) (processus manuel).

deuxième solution: Installez le dernier Eclipse IDE et configurez le serveur Apache Tomcat (processus automatique interne i, e Eclipse gère la partie configuration).

Après une procédure réussie du processus automatique, le processus manuel doit fonctionner correctement. 

0
Akshay Kumar