2017-02-14 3 views
0

Ich habe ein Kriegsprojekt mit einer einzigen Controller-Klasse (MainController.class) mit einem öffentlichen Funktionsindex(), die eine Zeichenfolge zurückgibt, die das letzte Mal den Namen der Ansicht überprüft wurde wurden weitergeleitet auf - und ein einzelnes jsp namens "index.jsp". Die Ansichten sind in/main/webapp/WEB-INF/views/jsp /. MainController.java:Spring MVC Die angeforderte Ressource ist nicht verfügbar

@Controller 
public class MainController 
{ 
    @Autowired 
    private ApplicationContextProvider mObjApplicationContextProvider; 

    @Autowired 
    private ScheduleService mObjScheduleService; 

    protected ApplicationContext getApplicationContext() 
    { 
     return(getApplicationContextProvider().getApplicationContext()); 
    } 

    protected ApplicationContextProvider getApplicationContextProvider() 
    { 
     return(mObjApplicationContextProvider); 
    } 

    protected Object getBean(final Class<?> clsBean) 
    { 
     return(getApplicationContext().getBean(clsBean)); 
    } 

    protected Object getBean(final String sBeanName) 
    { 
     return(getApplicationContext().getBean(sBeanName)); 
    } 

    protected ScheduleService getScheduleService() 
    { 
     return(mObjScheduleService); 
    } 

    @RequestMapping(value="/") 
    public String index() 
    { 
     return("index"); 
    } 
} 

index.jsp:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
     <title>Insert title here</title> 
    </head> 
    <body> 
     Hello World! 
    </body> 
</html> 

Meine Konfiguration XML-Datei:

<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:mvc="http://www.springframework.org/schema/mvc" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
          http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd 
          http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> 

    <context:component-scan base-package="net.draconia.church" /> 

    <bean class="net.draconia.ApplicationContextProvider" /> 

    <bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource"> 
     <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" /> 
     <property name="url" value="jdbc:mysql:sql9.freemysqlhosting.net/sql9158326" /> 
     <property name="username" value="sql9158326" /> 
     <property name="password" value="MqX7sbacgB" /> 
    </bean> 

    <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
     <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> 
     <property name="prefix" value="/WEB-INF/views/jsp/" /> 
     <property name="suffix" value=".jsp" /> 
    </bean> 

    <mvc:resources mapping="/resources/**" location="/resources/" /> 

    <mvc:annotation-driven /> 

</beans> 

Aus irgendeinem Grund habe ich den Fehler in meinem Browser, wenn ich zu "gehen http://localhost:8080/Ushering/ ": 404 -" Die angeforderte Ressource ist nicht verfügbar. "

Ich kann nichts in den Protokollen finden (kann aber bei Bedarf posten), um mir mitzuteilen, welche Datei oder Ressource nicht verfügbar ist. Es scheint in der Lage zu sein, den Controller zu finden, da er in der einen Protokolldatei die Anforderungszuordnung für den Controller erwähnt. Was könnte es sein?

Edit: Die WAR-Datei ist Ushering wie in der Pom-Datei und auch in der web.xml als der Name des Projekts definiert, so würde ich denken, der Kontext wäre Ushering und alles in der Spring-Anwendung Seite von Dinge wären nach/Ushering, wenn ich das Anforderungsmapping auf/Hello setze, dann sollte die URL localhost: 8080/Ushering/Hello sein.

Edit: Meine Web.xml Datei

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> 
    <display-name>CrunchifySpringMVCTutorial</display-name> 
    <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 

    <servlet> 
     <servlet-name>Ushering</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/Ushering-config.xml</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>Ushering</servlet-name> 
     <url-pattern>/s</url-pattern> 
    </servlet-mapping> 
</web-app> 
+0

Können Sie Ihre web.xml-Datei posten? – dennislloydjr

+0

Hinzugefügt als Bearbeitung –

+0

Ich habe es! Es gab einen Tippfehler, den ich bemerkte, als ich die web.xml -/s im URL-Muster unten anbrachte. Es sollte/und nur/sein. Ich entfernte das 's', sauber kompilieren Krieg: War-ed es und es kam auf, wie ich es erwarte :-D Danke, dass Sie mich in die richtige Richtung stoßen! –

Antwort

0

Wenn Sie an Ihrer MainController Klasse aussehen gibt es nur eine Anfrage Methode Umgang mit dem „Index“ zurück. Es wird auf "/" abgebildet, was bedeutet, dass Sie bei Eingabe von localhost: 8080 eine Indexdatei als Gegenleistung erhalten. Anstatt einzugeben, geben Sie daher localhost: 8080/Usheringlocalhost ein: 8080. Es würde funktionieren. Wenn Sie jedoch localhost: 8080/Ushering eingeben möchten, ändern Sie die Anforderungszuordnung in der Controller-Datei in die folgende.

@RequestMapping (value = "/ Ushering")

public String index() 
{ 
    return("index"); 
} 

Es würden Sie die Indexdatei zurück.

+0

Ich sehe nicht, wie das sein könnte - Der Krieg ist Ushering.war und es erstellt einen Kontext Ushering-Ordner unter dem WebApps-Ordner in Tomcat, wenn ich die WAR-Datei auf Webapps kopieren. Wenn ich http: // localhost: 8080 eintippe, bekomme ich die "Wenn Sie das sehen, haben Sie Tomcat offiziell installiert! Herzlichen Glückwunsch!" Seite. –

Verwandte Themen