spring3 버전에서 mvc interceptors 사용



스프링3 버전에서 mvc 인터셉터를 쓰려면 에러가 난다.





이게 스프링4 버전에서부터 바뀐 부분인데 


결론부터 말하자면


인터셉터를 선언하기 전에

 <mvc:annotation-driven/> 를 먼저 선언해주면 해결된다.



@MVC의 기반 클래스 변경

  • 3.1 부터 MVC기반 클래스 변경
    • <mvc:annotation-driven/>에 의해 등록되는 클래스들
    • HandlerMapping : DefaultAnnotationHandlerMapping -> RequestMappingHandlerMapping
    • HandlerAdaptor : AnnotationMethodHandlerAdapter -> RequestMappingHandlerAdapter
    • HandlerExceptionResolver : AnnotationMethodHandlerExceptionResolver -> ExceptionHandlerExceptionResolver
    • 이름을 보면
      • 'Annotation'은 이제 당연하므로 생략.
      • @RequestMapping이 연상되도록
  • Handler를 클래스가 단위가 아닌 메소드 단위로
  • <mvc:annotation-driven/>를 쓸 때 옛날 클래스와 같이 쓰지 않도록 주의

    <mvc:annotation-driven/>
    <bean id="handlerAdapter"
        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="customArgumentResolvers">
           <array>
                 <bean class="net.benelog.UserArgumentResolver"/>
           </array>
        </property><property name="order" value="-1"/>
    </bean>
    

->

        <mvc:annotation-driven>
            <mvc:argument-resolvers>
                    <bean class="net.benelog.UserArgumentResolver"/>
            </mvc:argument-resolvers>
        </mvc:annotation-driven>



HTTP Status 500 - Servlet.init() for servlet action threw exception



HTTP Status 500 - Servlet.init() for servlet action threw exception


type Exception report

message Servlet.init() for servlet action threw exception

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Servlet.init() for servlet action threw exception
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
	org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442)
	org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1083)
	org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:640)
	org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
	java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	java.lang.Thread.run(Unknown Source)

root cause




서블릿 설정 문제인데 모르겠다..

에러 : Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0 #2




pom.xml에서 아무 이상 없는데 dependency 부분에서 자꾸 에러나는 현상



에러코드를 검색해보면 repositories 를 추가하라고 되있는데 찾아보니까 




2016, 04, 26 부로 메이븐 추가 주소가 바뀌었다.



이 뒤로는 에러 안난다.


1···32333435363738

+ Recent posts