[스프링+부트스트랩] webjars를 이용하는 도중 No mapping found for HTTP request with URI 에러가 나옵니다.


안녕하세요 부트스트랩+스프링으로 웹사이트 만드는 연습하고 있는데 오류에 봉착하여 고수님들의 도움이 필요한 상황입니다.

maven으로 webjars 라이브러리를 받았습니다.

그리고 아래와 같이 html 파일에 webjars의 라이브러리 파일을 참조하도록 하였습니다.

-- pageTyWebsite.html --

  <link rel="stylesheet" href="/webjars/bootstrap/3.3.4/dist/css/bootstrap.min.css">
  <script src="/webjars/jquery/2.1.3/dist/jquery.min.js"></script>
  <script src="/webjars/bootstrap/3.3.4/dist/js/bootstrap.min.js"></script>

하지만 서버를 돌려보면 아래와 같이 오류가 나면서 적용이 안됩니다.

WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/webjars/jquery/2.1.3/dist/jquery.min.js] in DispatcherServlet with name 'appServlet' WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/webjars/bootstrap/3.3.4/dist/js/bootstrap.min.js] in DispatcherServlet with name 'appServlet' WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/webjars/bootstrap/3.3.4/dist/css/bootstrap.min.css] in DispatcherServlet with name 'appServlet' WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/webjars/bootstrap/3.3.4/dist/js/bootstrap.min.js] in DispatcherServlet with name 'appServlet'

해결방법 아신다면 꼭 좀 부탁드리겠습니다. 감사합니다. ㅜㅜ 아래는 제가 설정한 web.xml 파일과 servlet-context.xml 파일 그리고 controller의 메소드입니다.

-- web.xml --

  <servlet-mapping> 
    <servlet-name>appServlet</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

-- servlet-context.xml --

  <resources mapping="/resources/**" location="/resources/" />
  <resources mapping="/webjars/**" location="/webjars/" />
  <resources mapping="/css/**" location="/css/"/>
  <resources mapping="/img/**" location="/img/"/>
  <resources mapping="/js/**" location="/js/"/>

-- controller.java --

  @RequestMapping("pageSpringFwBoard.do")
   public String pageSpringFwBoard(){
           return "pageTyWebsite"; 
   }
  • 2016년 08월 11일에 작성됨

조회수 323


2 답변


프로젝트의 webapp 디렉토리 밑에 webjars 폴더에 bootstrap, jquery 등이 모두 있어야 합니다. 만약 없다면, 질문하신 에러는 정상입니다.

만약 jar 파일안에 파일들이 있는 경우에는 경로를 다음과 같이 해보세요. 관련 CSS/JS등이 webjars안에서 META-INF/resources/webjars/ 에 있는 경우입니다.

<resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/" />

그렇지 않은 경우 다음과 같이 시도해보세요.

-- servlet-context.xml --

  <beans:bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
  <!-- 시작 태그 혹은 현재 감싸는 곳에 xmlns:beans="http://www.springframework.org/schema/beans" 이 선언되어 있어야 합니다. -->
  <resources mapping="/resources/**" location="/resources/" />
  <resources mapping="/webjars/**" location="/webjars/" />
  <resources mapping="/css/**" location="/css/"/>
  <resources mapping="/img/**" location="/img/"/>
  <resources mapping="/js/**" location="/js/"/>

위와 같이 직접 핸들러를 추가해서 한번 해보세요.

혹은 mvc xmlns (xmlns:mvc="http://www.springframework.org/schema/mvc")가 선언되어 있다면 태그를 다음과 같이 바꾸세요.

  <mvc:resources mapping="/resources/**" location="/resources/" />
  <mvc:resources mapping="/webjars/**" location="/webjars/" />
  <mvc:resources mapping="/css/**" location="/css/"/>
  <mvc:resources mapping="/img/**" location="/img/"/>
  <mvc:resources mapping="/js/**" location="/js/"/>
  • 2016년 08월 23일에 작성됨
    리눅스(유닉스) 기반의 시스템에서 웹 서비스를 개발하고 있습니다.


이거 저도 똑같이 났었는데요... 저는 그냥 pom.xml에 선언한 bootstrap 버전하고 js 코드에 박아둔 버전하고 달라서 애가 못찾은거에요

한번 확인해 보세요

예를 들어서

<script src="/webjars/bootstrap/3.3.4/dist/js/bootstrap.min.js"></script>

이렇게 선언하셨으면

pom.xml에도

<dependency>
   <groupId>org.webjars.bower</groupId>
   <artifactId>bootstrap</artifactId>
   <version>3.3.4</version>
</dependency>

버전이 위와 같이 선언 되어있어야해요


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close