2017-02-28 1 views
0

Ich bin mit diesem Problem den Kopf zerbrechen. Ich habe eine einfache Controller-Klasse mit der Fähigkeit, eine einfache HTML-Seite zusammen mit der Spring-Boot-Initialisierer-Klasse zu rendern.Statischer Inhalt wird nicht geladen mit Spring Boot

Ich habe die HTML-Seite in den statischen Ordner unter src/main/resources-Verzeichnis platziert. Aber ich bin nicht in der Lage, die HTML-Seite zu bekommen. Stattdessen erhalte ich 404 Fehler.

Unten finden Sie die Struktur meines Projekts

Project structure

Im Folgenden meine pom.xml

ist
<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.example</groupId> 
    <artifactId>demo</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>demo</name> 
    <description>Demo project for Spring Boot</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.5.1.RELEASE</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 


</project> 

Im Folgenden sind die Steuerung und Spring Initializer Klasse

DemoApplication.java:

package com.example; 

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 

@SpringBootApplication 
public class DemoApplication { 

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

SimpleController.java:

package com.example.controller; 

import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 

@Controller 
public class SimpleController { 

@RequestMapping("/") 
public String home(){ 
    System.out.println("Hello Home..."); 
    return "home"; 
} 
} 

home.html:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="ISO-8859-1"> 
<title>Hello</title> 
</head> 
<body> 
Helloooo...... 
</body> 
</html> 

Konsolenprotokolle auf Ausführen des Frühlings-Boot:

:: Frühlings-Stiefel :: (v1.5.1.RELEASE)

2017.02.28 10: 46: 26,676 INFO 8240 --- [Main] com.example.DemoApplication: ab DemoApplication auf ABC mit PID 8240 (C: \ SpringB ootEx \ demo \ target \ classes gestartet von abc in C: \ SpringBootEx \ demo) 2017-02-28 10: 46: 26.681 INFO 8240 --- [main] com.example.DemoApplication: Kein aktives Profil gesetzt, fällt zurück zu Standardprofilen: Standard 2017-02-28 10: 46: 26.771 INFO 8240 --- [main] ationConfigEmbeddedWebApplicationContext: Aktualisierung org.springframework.boot[email protected]70b0b186: Startdatum [Di Feb 28 10:46 : 26 MST 2017]; Wurzel der Kontexthierarchie 2017-02-28 10: 46: 28.281 INFO 8240 --- [main] trationDelegate $ BeanPostProcessorChecker: Bean 'org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration' vom Typ [class org.springframework.boot .autoconfigure.validation.ValidationAutoConfiguration] kann nicht von allen BeanPostProcessors verarbeitet werden (zum Beispiel: nicht für Autoproxying geeignet) 2017-02-28 10: 46: 28.514 INFO 8240 --- [main] trationDelegate $ BeanPostProcessorChecker: Der Bean 'Validator' vom Typ [class org.springframework.validation.beanvalidation.LocalValidatorFactoryBean] kann nicht von allen BeanPostProcessors verarbeitet werden (zum Beispiel: nicht für Autoproxying geeignet) 2017-02-28 10: 46: 28.949 INFO 8240 --- [main] sbcetTomcatEmbeddedServletContainer: Tomcat initialisiert mit Port (s): 8080 (http) 2017-02-28 10: 46: 28.973 INFO 8240 --- [main] o.apache.catalina.core.StandardService: Starten des Dienstes Tomcat 2017-02-28 10: 46: 28.974 INFO 8240 --- [main] org.apache.catalina.core.StandardEngine: Starten der Servlet-Engine: Apache Tomcat/8.5.11 2017-02-28 10: 46: 29.194 INFO 8240 --- [ost-startStop-1] oaccC [Tomcat]. [Localhost]. [/]: Initialisierung von Spring embedded WebApplicationContext 2017-02-28 10: 46: 29.194 INFO 8240 --- [ost-startStop-1] osweb.context.ContextLoader: Stamm WebApplicationContext: Initialisierung in 2428 ms abgeschlossen 2017-02-28 10: 46: 29.448 INFO 8240 --- [ost-startStop-1] osbwservlet.ServletRegistrationBean: Zuordnung von Servlet: 'dispatchersServlet' zu [/] 2017-02-28 10:46:29.455 INFO 8240 --- [ost-startStop-1] osbwservlet.FilterRegistrationBean: Zuweisungsfilter: 'characterEncodingFilter' zu: [/ ] 2017-02-28 10: 46: 29.457 INFO 8240 --- [ost-startStop -1] osbwservlet.FilterRegistrationBean: Zuordnungsfilter: 'hiddenHttpMethodFilter' zu: [/] 2017-02-28 10: 46: 29.458 INFO 8240 --- [ost-startStop-1] osbwservlet.FilterRegistrationBean: Zuordnungsfilter : 'httpPutFormContentFilter' zu: [/ ] 2017-02-28 10: 46: 29.458 INFO 8240 --- [ost-startStop-1] osbwservlet.FilterRegistrationBean: Zuordnungsfilter: 'requestContextFilter' zu: [/] 2017-02-28 10: 46: 29.967 INFO 8240 --- [main] swsmmaRequestMappingHandlerAdapter: Auf der Suche nach @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbed dedWebApplicationContext @ 70b0b186: Startdatum [Di Feb 28 10:46:26 MST 2017]; Wurzel der Kontexthierarchie 2017-02-28 10: 46: 30.071 INFO 8240 --- [main] swsmmaRequestMappingHandlerMapping: Zugewiesene "{[/]}" auf öffentlichen java.lang.String com.example.controller.SimpleController.home() 2017-02-28 10: 46: 30.080 INFO 8240 --- [main] swsmmaRequestMappingHandlerMapping: Mapped "{[/ Fehler]}" auf öffentliche org.springframework.http.ResponseEntity> org.springframework.boot.autoconfigure .web.BasicErrorController.error (javax.servlet.http.HttpServletRequest) 2017-02-28 10: 46: 30.081 INFO 8240 --- [Haupt] swsmmaRequestMappingHandlerMapping: Mapped "{[/ Fehler], produziert = [Text/html]} auf öffentliche org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) 2017-02- 28 10: 46: 30.145 INFO 8240 --- [main] o. swshandler.SimpleUrlHandlerMapping: Zugeordneter URL-Pfad [/ webjars/] auf Handler vom Typ [Klasse org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2017-02-28 10: 46: 30.145 INFO 8240 --- [main ] oswshandler.SimpleUrlHandlerMapping: Zugeordneter URL-Pfad [/] auf Handler des Typs [Klasse org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2017-02-28 10: 46: 30.194 INFO 8240 --- [main] oswshandler.SimpleUrlHandlerMapping: Zugeordneter URL-Pfad [/**/favicon.ico] auf Handler des Typs [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2017-02-28 10: 46: 30.478 INFO 8240 - - [main] osjeaAnnotationMBeanExporter: Registrieren von Beans für JMX-Exposure beim Start 2017-02-28 10: 46: 30.582 INFO 8240 --- [main] sbcetTomcatEmbeddedServletContain äh: Tomcat hat an Port (s) gestartet: 8080 (http) 2017-02-28 10: 46: 30.590 INFO 8240 --- [main] com.example.DemoApplication: Gestartete DemoApplication in 4.391 Sekunden (JVM läuft für 5.147) 2017-02-28 10: 49: 04.176 INFO 8240 --- [nio-8080-exec-1] oacc [Tomcat]. [Localhost]. [/]: SpringServlet 'dispatcherServlet' initialisieren 2017-02-28 10: 49: 04.176 INFO 8240 --- [nio-8080-exec-1] osweb.servlet.DispatcherServlet: FrameworkServlet 'dispatcherServlet': Initialisierung gestartet 2017-02-28 10: 49: 04.205 INFO 8240 --- [ nio-8080-exec-1] osweb.servlet.DispatcherServlet: FrameworkServlet 'dispatcherServlet': Initialisierung in 29 ms abgeschlossen Hallo Home ...

Kann mir bitte jemand helfen, den vi zu bekommen Ew gerendert? Dank ..

+1

Zeigen Sie uns Ihre Controller, wo Sie die Ansicht aufrufen. Dein Screenshot zeigt die Ansicht außerhalb des statischen Ordners ... also bin ich etwas verwirrt. –

+0

Ihre Datei ** home.html ** befindet sich nicht im Ordner ** src/main/resources/static **, aber im Ordner ** src/main/resources ** legen Sie sie in den Ordner, den Sie bereits erwähnt haben sollte arbeiten. – g00glen00b

+0

Entschuldigung für die Verwirrung. Ich habe versucht, die home.html Seite auch in den statischen Ordner zu legen. Aber ich sehe immer noch das gleiche Problem. – Saravana6788

Antwort

1

Sie können home.html in eine der folgenden Positionen platzieren:

src/main/resources/META-INF/resources/home.html

src/main/resources /resources/home.html

src/main/resources/static/home.html

src/main/resources/public/home.html

und

@RequestMapping("/") 
public String home() { 
    System.out.println("Hello Home..."); 
    return "home.html"; 
} 
0
Add the below tags inside <build></build> 

<build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
<resources> 
        <resource> 
         <directory>src/main/resources</directory> 
        </resource> 
     </resources>` 
    </build> 
Verwandte Themen