2016-03-13 9 views
6

Fondamentalmente, l'accesso "/" e "/ a" funzionano sul browser. Acess "/ testme" non funziona. L'errore èEccezione del percorso di visualizzazione circolare con il framework Spring

2016-03-13 15: 04: 37,709 Errore 1933 --- [io-8080-exec-57] osboot.context.web.ErrorPageFilter: Inoltro alla pagina di errore dalla richiesta [/testmenull] a causa di un'eccezione [Percorso vista circolare [testme.html]: verrà nuovamente inviato all'URL del gestore corrente [/XXXX/testme.html]. Controlla la tua configurazione di ViewResolver! (Suggerimento: Questo può essere il risultato di una visione non specificato, a causa di nome della vista generazione di default.)]

faccio un grep stringa, ma non può trovare "ViewResolver". Non ho idea del perché "/" e "/ a" funzionano. Qualche idea?

immagine

Vedere per maggiori: enter image description here

tutti i file 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

Errore dice check your viewResolver, hai controllato? Puoi incollare la configurazione xml? –

+0

Non c'è viewResolver, poiché eseguo una stringa grep in tutti i file. Ho pubblicato web.xml e pom.xml. Anche una foto di tutti i file xml. – kenpeter

+0

Quindi è un progetto Spring-Boot! Penso che ti sia confuso con il progetto Spring-MVC e Spring-Boot. Devi perdere 'testme.html' nella directory' src/main/resources'. E perché questo errore, vedere [questa risposta] (http://stackoverflow.com/questions/18813615/how-to-avoid-the-circular-view-path-exception-with-spring-mvc-test). –

risposta

13

il valore di @RequestMapping è "t estme "e il valore di return è anche" testme "in modo che quando si accede a"/testme ", il web reindirizzerà nuovamente a"/testme ". Ciò porterà a un reindirizzamento infinito a "/ testme".

+0

Questa è la risposta (!) Che salva da - Errore percorso vista circolare – Andrius

5

Se si utilizza gradle, è necessario aggiungere: compile("org.springframework.boot:spring-boot-starter-thymeleaf") oppure trovare questa dipendenza.

0

Penso che se tutti i nomi HTML sono corretti, forse avete bisogno di dichiarare qualcosa di simile nella classe 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

Se non si restituisce la vista. Ma solo un JSON, aggiungendo @ResponseBody alla risposta, aiuta a restituire un valore JSON piuttosto che una vista.

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

0

Questo problema viene a causa di dipendenze circolari menzionate pom.xml. Se si utilizza spring-boot-starter-freemaker, evitare di utilizzare spring-boot-starter-web. spring-boot-starter-web fa già parte di spring-boot-starter-freemaker.

Problemi correlati