[SPRING] Spring 서블릿을 설정할 때 "WARN org.springframework.web.servlet.PageNotFound - URI가있는 HTTP 요청에 대한 매핑이 없습니다 ..."를 가져 오는 중
SPRINGSpring 서블릿을 설정할 때 "WARN org.springframework.web.servlet.PageNotFound - URI가있는 HTTP 요청에 대한 매핑이 없습니다 ..."를 가져 오는 중
Spring MVC 프로젝트를 설정하려고합니다. 디스패처 서블릿 인 jsp와 setup을 web.xml 파일에 추가했습니다. 하지만 계속해서
내 web.xml은 다음과 같습니다.
...
<context-param>
<description>Vaadin production mode</description>
<param-name>productionMode</param-name>
<param-value>true</param-value>
</context-param>
<!-- To load the Spring context -->
<listener>
<listener-class>org.activiti.explorer.servlet.WebConfigurer</listener-class>
</listener>
<!-- To allow session-scoped beans in Spring -->
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<filter>
<filter-name>UIFilter</filter-name>
<filter-class>org.activiti.explorer.filter.ExplorerFilter</filter-class>
</filter>
<filter>
<filter-name>JSONPFilter</filter-name>
<filter-class>org.activiti.explorer.servlet.JsonpCallbackFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UIFilter</filter-name>
<url-pattern>/o/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>JSONPFilter</filter-name>
<url-pattern>/service/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>Vaadin Application Servlet</servlet-name>
<servlet-class>org.activiti.explorer.servlet.ExplorerApplicationServlet</servlet-class>
<init-param>
<param-name>widgetset</param-name>
<param-value>org.activiti.explorer.CustomWidgetset</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Vaadin Application Servlet</servlet-name>
<url-pattern>/ui/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Vaadin Application Servlet</servlet-name>
<url-pattern>/VAADIN/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>HelloWeb</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>HelloWeb</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
<!-- Session timeout on one day -->
<session-config>
<session-timeout>480</session-timeout>
</session-config>
다음은 HelloWeb-servlet.xml입니다.
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="org.activiti.explorer.controller" />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
내 HelloController
package org.activiti.explorer.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
/**
*
* @author Fionn
*/
@Controller
public class HelloController {
@RequestMapping("/hello")
public ModelAndView helloWorld() {
String message = "<br><div align='center'>"
+ "<h3>********** Hello World, Spring MVC Tutorial</h3>This message is comming from CrunchifyHelloWorld.java **********<br><br>";
return new ModelAndView("hello", "message", message);
}
}
그리고 내 hello.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@page trimDirectiveWhitespaces="true" %>
<!DOCTYPE html>
<html>
<head>
<title>Hello Spring MVC</title>
</head>
<body>
나는 이것을 이해할 수 없으므로 어떤 도움을 주시면 감사하겠습니다.
해결법
-
==============================
1.당신은
당신은
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" 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.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- Enables the Spring MVC @Controller programming model --> <mvc:annotation-driven /> <context:component-scan base-package="org.activiti.explorer.controller" /> <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean> </beans>
xsd 파일에서 버전을 제거했음을 참고하십시오. 이는 jar 파일의 스키마를 사용한다는 것을 의미합니다 (호환되지 않는 경우 유효성 검사 오류가 있음)
@ Nikolay의 의견을받은 후에도 매핑에 오류가 있음을 확인했습니다. (여전히 주석 기반 요소가 필요함에 유의하십시오.) 컨트롤러의 매핑을
@RequestMapping("/hello.jsp")
를 통해 액세스하고
/safesite/hello.jsp
또는보다 일반적으로 서블릿 매핑을 다음과 같이 변경하십시오.
<servlet-mapping> <servlet-name>HelloWeb</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
니콜라이가 말한대로 / safesite / hello
-
==============================
2.비슷한 문제가 발생하기 전에 일련의 테스트를 거친 후 DispatcherServlet의 URL 패턴이라는 것을 알게되었습니다. 와일드 카드 매치에 별표를 사용하면 예기치 않은 동작이 발생할 수 있으므로주의해야합니다. 루트 "/"또는 사용자 지정 서블릿 컨텍스트 경로 "/ foo /"에서 시작하는 것이 안전합니다.
비슷한 문제가 발생하기 전에 일련의 테스트를 거친 후 DispatcherServlet의 URL 패턴이라는 것을 알게되었습니다. 와일드 카드 매치에 별표를 사용하면 예기치 않은 동작이 발생할 수 있으므로주의해야합니다. 루트 "/"또는 사용자 지정 서블릿 컨텍스트 경로 "/ foo /"에서 시작하는 것이 안전합니다.
다음을 시도하십시오.
HelloWeb servlet-name> / url-pattern> servlet-mapping> -
==============================
3.스프링 프레임 워크 3.X에서 4.X로 마이그레이션 / 업데이트하고 반환 된 객체로 json (Jackson2를 통해)을 사용하고 위의 오류가 발생하면 오류가 발생합니다.
스프링 프레임 워크 3.X에서 4.X로 마이그레이션 / 업데이트하고 반환 된 객체로 json (Jackson2를 통해)을 사용하고 위의 오류가 발생하면 오류가 발생합니다.
이 문제를 해결하려면 다음을 추가해야합니다.
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes" value = "text/plain;charset=UTF-8"/> </bean> </list> </property> </bean> <bean class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"> <property name="mediaTypes"> <map> <entry key="json" value="application/json"/> </map> </property> </bean> <bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"> <property name="contentType" value="application/json"/> </bean>
XXX-servlet.xml 파일로
그리고 코드에서 반환 값으로 MappingJackson2JsonView를 사용해야합니다. 예 :
@RequestMapping("/user") MappingJackson2JsonView user() { MappingJackson2JsonView view = new MappingJackson2JsonView(); view.setExtractValueFromSingleKeyModel(true); view.addStaticAttribute("user", new User("Sébastien", "Deleuze")); view.setPrefixJson(true); return view; }
더 많은 예제는 다음을 참고하십시오 : http://www.programcreek.com/java-api-examples/index.php?api=org.springframework.web.servlet.view.json.MappingJackson2JsonView
from https://stackoverflow.com/questions/28364163/getting-warn-org-springframework-web-servlet-pagenotfound-no-mapping-found-fo by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] ClassNotFoundException : HQL을 실행하려고 할 때 org.hibernate.hql.ast.HqlToken (0) | 2019.05.27 |
---|---|
[SPRING] @GetMapping은 Accept가 정의 된 경우에도 호출됩니다. (0) | 2019.05.27 |
[SPRING] Spring CrudRepository는 사용자 정의 쿼리 메서드 정의에 AbstractMethodError를 발생시킵니다. (0) | 2019.05.27 |
[SPRING] 세션 기반 데이터 소스가있는 스프링 부트 (0) | 2019.05.27 |
[SPRING] Main 클래스에서 스프링 빈에 속성을 주입하는 방법 (0) | 2019.05.27 |