Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

spring - No adapter for handler exception

I'm developing a web application using spring mvc framework. I want to to both annotation and beanName based url mappings.

I've the following configurations in my context file

<mvc:annotation-driven />

<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>

My annotation based controllers are working fine but beanNamed based url mapping are throwing the exception "No adapter for handler".

What am I doing wrong here?

Thank you

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

By default the spring mvc defines 3 different request handler adapters, they are

org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter

So you need not have to define them in your context file, but if you define at least one handler adapter in your context files, spring will not create the default adapters.

In your configuraion you are using <mvc:annotation-driven />, according to this spring documentation this will cause the context to define both DefaultAnnotationHandlerMapping and AnnotationMethodHandlerAdapter. Since we are creating the AnnotationMethodHandlerAdapter in our context definition spring will not create the other two handlerAdapters. That is why you are getting the said exception.

The beanNameUrlMapping needs the handlerAdapter SimpleControllerHandlerAdapter.

To resolve this exception you can simply create a new bean of type "SimpleControllerHandlerAdapter" in your context.

<bean
    class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter">
</bean>

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...