2016-03-13 23 views
6

Zasadniczo dostęp do "/" i "/ a" działają w przeglądarce. Acess "/ testme" nie działa. Błąd jestWyjątek ścieżki widoku kołowego ze strukturą sprężystą

2016-03-13 15: 04: 37,709 Błąd 1933 --- [io-8080-Exec-57] osboot.context.web.ErrorPageFilter: Przekazywanie błędu strony z żądanie [/testmenull] ze względu na wyjątek [Ścieżka widoku kołowego [testme.html]: spowoduje ponowne wysłanie z powrotem do aktualnego adresu URL obsługi [/XXXX/testme.html]. Sprawdź swoją konfigurację ViewResolver! (Podpowiedź: To może być wynikiem nieokreślonym widzenia, ze względu na domyślną nazwę widoku pokolenie.)]

zrobić grep ciągu znaków, ale nie może znaleźć „ViewResolver”. Nie mam pojęcia, dlaczego praca "/" i "/ a". Dowolny pomysł?

Zobacz obraz wiecej: enter image description here

wszystkich plików XML: enter image description here

pom.xml

<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/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.xxxxx</groupId> 
    <artifactId>Monitor</artifactId> 
    <packaging>war</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <!--<name>Monitor</name>--> 
    <url>http://maven.apache.org</url> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.1.9.RELEASE</version> 
    </parent> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>javax.websocket</groupId> 
      <artifactId>javax.websocket-api</artifactId> 
      <version>1.1</version> 
      <scope>provided</scope> <!--for web socket--> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-jpa</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.31</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.hateoas</groupId> 
      <artifactId>spring-hateoas</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>com.google.code.gson</groupId> 
      <artifactId>gson</artifactId> 
      <version>2.3</version> 
     </dependency> 
     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-databind</artifactId> 
     </dependency> 
     <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
     </dependency> 
    </dependencies> 

    <build> 
     <finalName>Monitor</finalName> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <compilerVersion>1.7</compilerVersion> 
        <source>1.7</source> 
        <target>1.7</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
      <!--<plugin>--> 
       <!--<groupId>org.apache.maven.plugins</groupId>--> 
       <!--<artifactId>maven-source-plugin</artifactId>--> 
       <!--<executions>--> 
        <!--<execution>--> 
         <!--<id>attach-sources</id>--> 
         <!--<goals>--> 
          <!--<goal>jar</goal>--> 
         <!--</goals>--> 
        <!--</execution>--> 
       <!--</executions>--> 
      <!--</plugin>--> 
     </plugins> 
     <resources> 
      <resource> 
       <directory>${basedir}/src/main/resources</directory> 
      </resource> 
      <resource> 
       <directory>${basedir}/src/main/java</directory> 
      </resource> 
     </resources> 
    </build> 
</project> 

web.xml

<!DOCTYPE web-app PUBLIC 
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd" > 

<web-app> 
    <display-name>Archetype Created Web Application</display-name> 
</web-app> 
+0

Wystąpił błąd: sprawdź swój viewResolver, czy to sprawdziłeś? Czy możesz wkleić konfigurację xml? –

+0

Nie ma viewResolver, ponieważ robię ciąg grep we wszystkich plikach. Napisałem web.xml i pom.xml. Również obraz wszystkich plików xml. – kenpeter

+0

Tak więc jest to projekt wiosenno-rozruchowy! Myślę, że pomyliłeś się z projektem Spring-MVC i Spring-Boot. Musisz pominąć 'testme.html' w katalogu' src/main/resources'. A dlaczego ten błąd, patrz [ta odpowiedź] (http://stackoverflow.com/questions/18813615/how-to-avoid-the-ccular-view-path-exception-w-spring-mvc-test). –

Odpowiedz

13

wartość @RequestMapping jest "t estme "a wartość zwrotu jest również" testme ", więc po wejściu na"/testme ", web ponownie przekieruje do"/testme ". Doprowadzi to do nieskończonego przekierowania do "/ testme".

+0

To jest odpowiedź (!), Która zapisuje z - Błąd ścieżki widoku kołowego – Andrius

5

Jeśli używasz gradle, musisz dodać: compile("org.springframework.boot:spring-boot-starter-thymeleaf"), lub maven znaleźć tę zależność.

0

Myślę, że jeśli wszystkie nazwy HTML są poprawne, być może trzeba zadeklarować coś takiego w swojej klasie MvcConfig:

@Configuration 
public class MvcConfig extends WebMvcConfigurerAdapter { 
    @Override 
    public void addViewControllers(ViewControllerRegistry registry) { 
     registry.addViewController("/home").setViewName("home"); 
     registry.addViewController("/usuario/perfil").setViewName("usuario/perfil"); 
     registry.addViewController("/").setViewName("home"); 
     registry.addViewController("/testme").setViewName("testme"); 
     registry.addViewController("/test").setViewName("test"); 
     registry.addViewController("/login").setViewName("login"); 
    }  
} 
1

Jeżeli nie wracają widok. Ale tylko JSON, dodając do odpowiedzi @ResponseBody, pomaga zwrócić wartość JSON, a nie widok.

Np @RequestMapping(value="/getList",method = RequestMethod.GET) public @ResponseBody List<LOne> getLOne(){

0

Kwestia ta pochodzi ze względu na wzajemnie od siebie zależnych wymienionych w pom.xml. Jeśli używasz Spring-Boot-Starter-Freemaker, to unikaj używania wiosenno-rozrusznika-sieci-startera. spring-boot-starter-web jest już częścią spring-boot-starter-freemaker.