Ich habe eine Anwendung erstellt, die Spring mit Eclipse IDE verwendet. Wenn ich das Projekt von Eclipse IDE aus starte, ist alles in Ordnung, aber wenn ich das Maven-Projekt als Kriegsdatei packe und für die Trennung von Tomcat einsetzte, habe ich dieses Problem
The Origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
Dies ist ein Konfigurationsausschnitt aus meiner XML-Datei
<!-- 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>
Ich versuche, auf diesen Controller zuzugreifen
@RequestMapping(value = {"/welcome", "/"})
public String defaultPage() {
return "Web Service data successfuly consumed";
}
wer hat eine Idee, warum dies auf Tomcat nicht funktioniert?
Ich habe viele Male mit diesem Problem zu kämpfen.
Die Lösung, die ich derzeit verwende, ist, ob die Webapp (oder der Ordner, in dem Sie die Ansichten wie "Jsp" gespeichert haben) sich im Bereitstellungsassembly befindet.
Dazu Right click on the project > Build Path > Configure Build path > Deployment Assembly > Add(right hand side) > Folder > (add your jsp
Ordner. In der Standardeinstellung ist dies src/main/webapp
)
Sie könnten diese Fehlermeldung auch erhalten, wenn Sie alles richtig gemacht haben, aber auf der JSP setzen Sie den Anker-Tag auf die alte Art und Weise (ich füge diesen Fall hinzu, wenn andere mit demselben Problem geholfen werden).
Ich hatte die folgende Syntax in der JSP. <a href="/mappedpath">TakeMeToTheController</a>
und ich sah den in der Frage erwähnten Fehler ständig. Durch das Ändern des Tags in das unten gezeigte wurde das Problem jedoch behoben.
<a href=" <spring:url value="/mappedpath" /> ">TakeMeToTheController</a>
Ich habe die gleiche Fehlermeldung erhalten, wenn ich in einer Spring Boot-Anwendung arbeite, da localhost:8080/hello/World
einfach als Spring Boot ausgeführt wird. Wenn Sie jedoch das Artefakt erstellt und in Tomcat bereitgestellt haben, müssen Sie zu localhost:8080/<artifactName>/hello/World
Wenn Sie eine Spring Boot-Anwendung entwickeln, fügen Sie Ihrer Hauptdatei "SpringBootServletInitializer" wie im folgenden Code gezeigt hinzu. Da Tomcat es ohne SpringBootServletInitializer als normale Anwendung betrachtet, wird es nicht als Spring-Boot-Anwendung betrachtet
@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);
}
}
Ich hatte das gleiche Problem und mit einem Hinweis auf die Antwort von @tadtab konnte ich eine Lösung für das gleiche Problem in meinem Projekt finden.
Schritte:
1-> Befolgen Sie die in den Antworten von @ tadtab genannten Schritte.
2-> Klicken Sie mit der rechten Maustaste auf das Projekt-> Klicken Sie auf Eigenschaften-> Nach Bereitstellungsassembly suchen.
3-> Suchen Sie, ob Ihr Ordner auf dem Bildschirm vorhanden ist. (Wenn nicht, fügen Sie es hinzu).
4-> Auf dem Bildschirm finden Sie eine Spalte 'Bereitstellungspfad', die Ihrem Quellordner entspricht. Kopieren Sie diesen Pfad. In meinem Fall war es/views.
5-> Im Grunde genommen sollten wir in der setPrefix () -Methode den Pfad zum Zeitpunkt der Bereitstellung haben. Früher habe ich nur/views in der setPrefix () -Methode verwendet, daher wurde derselbe Fehler angezeigt. Aber danach hat es gut funktioniert.
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/classes/");
resolver.setSuffix(".jsp");
resolver.setExposeContextBeansAsAttributes(true);
return resolver;
}
Dasselbe sollte auch für die XML-Konfiguration gelten.
Dieses Problem kann sogar auftreten, wenn Sie versuchen, Ihr Projekt von der Controllerseite aus auszuführen. Führen Sie Ihr Projekt über die JSP-Seite aus. Gehen Sie zu Ihrer JSP-Seite. Rechtsklick-> Ausführen als-> Auf Server ausführen. Ich hatte das gleiche Problem. Ich habe mein Projekt auf der Controllerseite ausgeführt. Führen Sie Ihr Projekt von der JSP-Seite aus.
Ihr Dispatcher-Servlet kann die Anfrage nicht versenden. Das Problem ist, dass Ihre Controller-Bean nicht erstellt wurde/funktioniert.
Sogar ich hatte das gleiche Problem. Fügen Sie dann unter mvc-config.xml Folgendes hinzu
<mvc:annotation-driven/>
<context:component-scan base-package="com.nsv.jsmbaba.teamapp.controller"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix"><value>/WEB-INF/view/</value></property>
<property name="suffix"><value>.jsp</value></property>
</bean>
Hoffe das hilft
Fast das gleiche Problem wird durch Erstellen einer geoexplorer.xml-Datei in /opt/Apache-Tomcat-8.5.37/conf/Catalina/localhost Gelöst
<Context displayName="geoexplorer" docBase="/usr/share/opengeo/geoexplorer" path="/geoexplorer"/>
Beim Versuch, ein Servlet in Eclipse auszuführen (Rechtsklick + "Auf Server ausführen"), trat das gleiche Problem auf: "HTTP-Status: 404/Beschreibung: Der Origin-Server hat keine aktuelle Darstellung für die Zielressource oder gefunden ist nicht bereit zu zeigen, dass einer existiert. " Das Hinzufügen einer index.html hat nicht geholfen, und es wurden auch keine anderen Einstellungen des Tomcat geändert.
Schließlich fand ich das Problem an einem unerwarteten Ort: In Eclipse wurde die Option "Automatisch erstellen" nicht festgelegt. Daher wurde das Servlet nicht kompiliert und es wurde keine Datei "myServlet.class" auf dem Server bereitgestellt (in meinem Fall im Pfad .wtpwebapps/projectXX/WEB-INF/classes/XXpackage /). Manuelles Erstellen des Projekts Durch einen Neustart des Servers wurde das Problem behoben.
Meine Umgebung: Eclipse Neon.3 Release 4.6.3, Tomcat-Version 8.5.14., OS Linux Mint 18.1.
Ich stand vor demselben Problem.
Wenn ich mit der rechten Maustaste auf den Server klicke, wähle ich meinen Server manuell aus und es hat funktioniert.
Tun
Alt+Shift+X
wählen Sie dann Ihren Server manuell aus. Es könnte helfen.
Ich bin auch mit dem gleichen Problem konfrontiert und löse es, indem ich die Datei web.xml und die Datei applicationcontext.xml im Ordner WEB-INF ablegt.
Hoffe das hilft :)
In Eclipse gehe zu Projekt -> klicke automatisch auf build und versuche es auszuführen
Wenn es sich um ein Maven-Projekt handelt, lösen Sie das Problem mit Maven Update. Klicken Sie mit der rechten Maustaste auf Projekt -> Maven -> Projekt aktualisieren und starten Sie Ihr Projekt normal.
Lösung 1: Ändern Sie die Version von Apache Tomcat (die neueste Version wird bevorzugt) (manueller Vorgang).
Lösung zwei: Installieren Sie den neuesten Eclipse IDE und konfigurieren Sie den Apache Tomcat-Server (interner automatischer Prozess i, eclipse übernimmt den Konfigurationsteil).
Nach dem erfolgreichen Ablauf des automatischen Prozesses muss der manuelle Prozess gut funktionieren.