2016-05-27 2 views
0

nicht auflösen Ich verwende Spring und AngularJS für eine Rest-Webanwendung. Base auf this Tutorial und basiert auf this Tutorial ich die folgende Ordnerstruktur erstellt haben:Konnte die Sicht mit dem Namen X im Servlet mit dem Namen Y

-src 
|----main 
    |----webapp 
     |----static 
      |----api 
      |----assets 
      |----resources 
      |----sections 
      |----services 
      |----index.html 
     |----WEB-INF 
      |----web.xml 
      |----spring 
       |----dispatcher-servlet.xml 
       |----applicationContext.xml 

Ich möchte statische HTML-Dateien dienen, damit ich die Ressourcen wie folgt erklärt:

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

<mvc:annotation-driven></mvc:annotation-driven> 
<context:component-scan base-package="org.tools.mvc.controllers"></context:component-scan> 
<mvc:resources location="/static/" mapping="/**"/> 
<mvc:resources location="/static/api/" mapping="/api/**"/> 
<mvc:resources location="/static/assets/" mapping="/assets/**"/> 
<mvc:resources location="/static/resources/" mapping="/resources/**"/> 
<mvc:resources location="/static/services/" mapping="/services/**"/> 
<mvc:resources location="/static/sections/home/" mapping="/sections/home/**"/> 


<bean name="viewResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver"></bean> 
<bean name="jsonTemplate" class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"></bean> 

Mein Problem ist, dass bei der Bereitstellung der Anwendung (ich verwende Glassfish-Server) der folgende Fehler auftritt (in der Eclipse-Konsole und auch in der Browserseite):

2016-05-27T04:46:06.640-0700|Warning: StandardWrapperValve[dispatcher]: Servlet.service() for servlet dispatcher threw exception 
javax.servlet.ServletException: Could not resolve view with name 'index.html' in servlet with name 'dispatcher' 

Die Funktionalität des Dienstes ist nicht betroffen (Postman verwendet, um den Rest der API zu testen, führt zum Erfolg). Bis jetzt, um die Anwendung weiter zu entwickeln, habe ich manuell index.html am Ende der URL hinzugefügt (wie localhost: 8080/status/index.html). Die Quelle für die "/" wie in Web Deployment Assembly deklariert ist:

Quelle:/src/main/webapp

Deploy Pfad:/

aktualisieren: Die Datei web.xml sucht dies wie:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> 
<display-name>status</display-name> 

<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/spring/applicationContext.xml</param-value> 
</context-param> 

<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring/dispatcher-servlet.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

Wie kann ich diesen Fehler beheben?

Danke

P.S Die Lösungen auf SO nicht gefunden zu meinem Szenario angewendet hat.

Antwort

0

Ich entdeckte, dass ich einen View Resolver (BeanNameViewResolver) in applicationContext.xml deklariert habe. Nach dem Löschen des View Resolvers habe ich den Fehler nicht erhalten.

Der Fehler trat auf, weil Spring versuchte, meine Ansicht (Hexe war eine statische HTML-Datei) zu einer Bean zu interpretieren.

Verwandte Themen