用maven配置了一个SpringMVC的项目。在启动的时候,所有的注解都扫描到了,也没有报错,但运行的时候报错。
<Mapped "{[/globalLibraryInfo/api/list]....
<Mapped "{[/globalLibraryInfo/api/search]....
<Mapped "{[/opac/sayHi],methods=[]....下面是我的测试的Controller代码:
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class Welcome {

@RequestMapping("/opac/sayHi")
public String wel() {

return "welcome";
}
}但是我在浏览器中输入http://localhost:8080/web8/opac/sayHi 的时候,控制台报错:
严重: Servlet.service() for servlet spring threw exception
org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'welcome' must be of type [org.springframework.web.servlet.View], but was actually of type [com.interlib.commonservice.controller.Welcome]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:360)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1097)
at org.springframework.web.servlet.view.BeanNameViewResolver.resolveViewName(BeanNameViewResolver.java:75)
at org.springframework.web.servlet.view.ContentNegotiatingViewResolver.getCandidateViews(ContentNegotiatingViewResolver.java:456)
at org.springframework.web.servlet.view.ContentNegotiatingViewResolver.resolveViewName(ContentNegotiatingViewResolver.java:287)
at org.springframework.web.servlet.DispatcherServlet.resolveViewName(DispatcherServlet.java:1211)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1160)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)

解决方案 »

  1.   

    使用的不对吧
    1.@RequestMapping("/opac/sayHi")
      不知道是不是这里的问题, @RequestMapping(value = "/upload", method = RequestMethod.POST)
    2.如果没有问题,看看你的viewResolver 的配置 ,再看看是否有 welcome ?
      

  2.   

    类型不对嘛,报错的信息很明确啊
     Bean named 'welcome' must be of type [org.springframework.web.servlet.View], but was actually of type [com.interlib.commonservice.controller.Welcome]或者楼主导入的包有重复,自己检查一下 去掉重复的就OK了
      

  3.   

    谢谢楼上几位朋友的回答.   是Welcome这个类名编译不通过.  我换成Welcom001就通过了.