복붙노트

[SPRING] 'appServlet'이라는 이름의 DispatcherServlet에서 URI [/ myappname /]가있는 HTTP 요청에 대한 매핑이 없습니다

SPRING

'appServlet'이라는 이름의 DispatcherServlet에서 URI [/ myappname /]가있는 HTTP 요청에 대한 매핑이 없습니다

오류가 발생했습니다. JBoss에서 프로젝트를 시작할 때 이름이 'appServlet'인 DispatcherServlet의 URI [/ myappname /]가있는 HTTP 요청에 대한 매핑이 없습니다. 이 문제는 여기에 설명 된 다른 문제를 해결 한 후에 발생합니다. 세션에 대한 액세스 방법을 변경 한 후 "현재 스레드에 대한 세션을 찾을 수 없습니다"

모든 것이 잘되기 전에. Apache Tiles 2를 사용하고 있습니다. 몇 가지 유사한 질문을 읽고 있는데 해결책이 없습니다.

이것은 Hibernate 구성이없는 DispatcherServlet 컨텍스트 파일입니다.

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
         xmlns:tx="http://www.springframework.org/schema/tx"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:beans="http://www.springframework.org/schema/beans"
         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.0.xsd
                    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
                    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

<!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->

<!-- Enables the Spring MVC @Controller programming model -->
<tx:annotation-driven />
<context:annotation-config />
<context:component-scan base-package="finances.webapp" />

<!-- Handles HTTP GET requests for resources by efficiently serving up static resources in the ${webappRoot}/resources directory -->
<resources mapping="/resources/**" location="/resources/" />

<beans:bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
    <beans:property name="definitions">
        <beans:list>
            <beans:value>/WEB-INF/tiles-definitions.xml</beans:value>
        </beans:list>
    </beans:property>
</beans:bean>

<beans:bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <beans:property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView" />
</beans:bean>

내 web.xml 전체 파일 :

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/spring/root-context.xml
    </param-value>
</context-param>

<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<listener>
    <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>

<!-- Processes application requests -->
<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

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

</web-app>

그리고 이것은 내 IndexController입니다 :

@Controller
public class IndexController {

    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String index(Model model, Principal principal) {
        return "index";
    }
}

현재 구성에 문제가 있습니까?

해결법

  1. ==============================

    1.@Controller 및 @RequestMapping 주석을 읽는 데 필요한 것 같아요. 당신은 여기와 여기에서 더 많은 것을 읽을 수 있습니다.

    @Controller 및 @RequestMapping 주석을 읽는 데 필요한 것 같아요. 당신은 여기와 여기에서 더 많은 것을 읽을 수 있습니다.

  2. ==============================

    2.해결 방법은 DispatcherServlet Context 파일에 다음과 같은 주석 중심 태그를 둘 다 유지하는 것입니다.

    해결 방법은 DispatcherServlet Context 파일에 다음과 같은 주석 중심 태그를 둘 다 유지하는 것입니다.

    <annotation-driven />
    <tx:annotation-driven />
    

    비슷한 해결책을 찾지 못했기 때문에 여기에 남겨 두겠습니다.

  3. ==============================

    3.spring servlet.xml 파일에 이것을 넣으십시오.

    spring servlet.xml 파일에 이것을 넣으십시오.

    xmlns:mvc="http://www.springframework.org/schema/mvc
    xmlns:tx="http://www.springframework.org/schema/tx"
    

    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
    

    <mvc:annotation-driven />
    <tx:annotation-driven /> 
    

    귀하의 컨트롤러 클래스에서 사용

     @Controller
     public class IndexController {..}
    

    그리고 그것은 작동합니다!

  4. ==============================

    4.나는 똑같은 예외를 겪고 있었고 위의 모든 해결책을 시도했지만 아무것도 도움이되지 못했습니다. 클래스가 대상 클래스 폴더에서 생성되지 않았고 잘못된 Maven 프로젝트 구조로 인해 Java 컨트롤러 클래스를 컴파일하지 못하기 때문에 문제가 발생한 포인터를 얻었습니다.

    나는 똑같은 예외를 겪고 있었고 위의 모든 해결책을 시도했지만 아무것도 도움이되지 못했습니다. 클래스가 대상 클래스 폴더에서 생성되지 않았고 잘못된 Maven 프로젝트 구조로 인해 Java 컨트롤러 클래스를 컴파일하지 못하기 때문에 문제가 발생한 포인터를 얻었습니다.

    아래 구조가 있는지 확인한 다음 target-> class 폴더에 클래스가 생성 된 경우 위의 제안 사항 만 시도하십시오.

    Project
      src
        main
          java
          resources
        test
          java
          resources
    
  5. ==============================

    5.src / main / resources 대신 .java 파일이 src / main / java에 있는지 확인하십시오.

    src / main / resources 대신 .java 파일이 src / main / java에 있는지 확인하십시오.

  6. from https://stackoverflow.com/questions/12351777/no-mapping-found-for-http-request-with-uri-myappname-in-dispatcherservlet-wi by cc-by-sa and MIT license