2016-03-13 2 views
6

के साथ परिपत्र दृश्य पथ अपवाद मूल रूप से, "/" और "/ a" तक पहुंच ब्राउज़र पर काम कर रही है। अतिरिक्त "/ testme" काम नहीं कर रहा है। 04:: त्रुटिस्प्रिंग फ्रेमवर्क

2016-03-13 15 है 37.709 त्रुटि 1933 --- [कब-8080-कार्यकारी-57] osboot.context.web.ErrorPageFilter: अग्रेषण अनुरोध से पेज त्रुटि के लिए [/testmenull] अपवाद के कारण [परिपत्र दृश्य पथ [testme.html]: वर्तमान हैंडलर यूआरएल [/XXXX/testme.html] पर फिर से भेज देगा। अपने ViewResolver सेटअप की जांच करें! (संकेत: यह एक अनिर्दिष्ट दृश्य का परिणाम है, डिफ़ॉल्ट दृश्य का नाम पीढ़ी कारण हो सकता है।)]

मैं एक स्ट्रिंग ग्रेप करते हैं, लेकिन नहीं मिला सकते हैं "ViewResolver"। मुझे नहीं पता कि क्यों "/" और "/ a" काम करते हैं। कोई उपाय?

अधिक के लिए

छवि देखें: enter image description here

सभी एक्सएमएल फ़ाइलें: 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

त्रुटि कहती है कि अपना विचार जांचें, क्या आपने इसे चेक किया है? क्या आप एक्सएमएल कॉन्फ़िगर पेस्ट कर सकते हैं? –

+0

कोई दृश्य नहीं है रीसोलवर, क्योंकि मैं सभी फाइलों में एक स्ट्रिंग grep करता हूं। मैंने web.xml और pom.xml पोस्ट किया। सभी एक्सएमएल फाइलों की एक तस्वीर भी। – kenpeter

+0

तो यह एक स्प्रिंग-बूट परियोजना है! मुझे लगता है कि आपने स्प्रिंग-एमवीसी और स्प्रिंग-बूट प्रोजेक्ट के साथ खुद को भ्रमित कर दिया है। आपको 'srcme.html' 'src/main/resource' निर्देशिका के अंतर्गत गुम होना चाहिए। और वह त्रुटि क्यों है, [यह उत्तर] देखें (http://stackoverflow.com/questions/18813615/how-to-avoid-the-circular-view-path-exception-with-spring-mvc-test)। –

उत्तर

13

@RequestMapping का मूल्य है "टी estme "और वापसी का मूल्य भी" testme "है ताकि जब आप"/testme "तक पहुंचें, तो वेब फिर से"/testme "पर रीडायरेक्ट करेगा। यह "/ testme" के लिए अंतहीन पुनर्निर्देशन का कारण बन जाएगा।

+0

यह उत्तर (!) है जो से बचाता है - परिपत्र दृश्य पथ त्रुटि – Andrius

5

यदि आप ग्रेडल का उपयोग कर रहे हैं तो आपको जोड़ना होगा: compile("org.springframework.boot:spring-boot-starter-thymeleaf"), या मेवेन इस निर्भरता को ढूंढें।

0

मुझे लगता है कि यदि एचटीएमएल नामों में से सभी सही हैं, हो सकता है आप अपने 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

आप एक दृश्य वापस नहीं कर रहे हैं। लेकिन प्रतिक्रिया के लिए @ResponseBody जोड़कर केवल एक JSON दृश्य के बजाय JSON मान लौटने में मदद करता है।

उदाहरण के लिए: @RequestMapping(value="/getList",method = RequestMethod.GET) public @ResponseBody List<LOne> getLOne(){

0

यह समस्या pom.xml में उल्लेख किया परिपत्र निर्भरता की वजह से आता है। यदि आप वसंत-बूट-स्टार्टर-फ्रीमेकर का उपयोग कर रहे हैं तो वसंत-बूट-स्टार्टर-वेब का उपयोग करने से बचें। वसंत-बूट-स्टार्टर-वेब पहले से ही वसंत-बूट-स्टार्टर-फ्रीमेकर का हिस्सा है।

संबंधित मुद्दे