0
votes

For this I also read some older posts on stackoverflow but I do not get solution I needed.

I am creating a simple Spring MVC HelloWeb application.

For this I am using following files

1) web.xml for configuring DispatcherServlet

<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Spring MVC Web Application</display-name>
<servlet>
<servlet-name>HelloWeb</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>HelloWeb</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>

2) Then I am writing Simple HelloController as follows :

package com.tutorialspoint;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.ui.ModelMap;
@Controller
public class HelloController{
@RequestMapping(value="hello" ,method = RequestMethod.GET)
public String printHello(ModelMap model) {
model.addAttribute("message", "Hello Spring MVC Framework!");
return "hello";
}
}

3) After that I configured HelloWeb-servlet.xml as follows

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
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">
<context:component-scan base-package="com.tutorialspoint"></context:component-scan>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
<property name="order" value = "1" ></property>
</bean>
</beans>

4) hello.jsp

<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h2>${message}</h2>
</body>
</html>

5) package-nfo.java

package com.tutorialspoint;

I exported the war to the tomcat 7 webapps folder and restarted the tomcat service.

I checked HelloWeb app in the tomcat console it was running.

I hit url http://<URL>:8080/HelloWeb/hello.

And I got the following error

javax.servlet.ServletException: Servlet.init() for servlet HelloWeb threw exception org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:242) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:259) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:237) org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:281) java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.lang.Thread.run(Unknown Source) root cause org.springframework.beans.factory.BeanCreationException: Error creating bean with
name'org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping': Initialization of bean failed; nested exception is java.lang.NoSuchMethodError:
org.springframework.context.ApplicationContext.findAnnotationOnBean(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/annotation/Annotation; org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) java.security.AccessController.doPrivileged(Native Method) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:255) org.springframework.web.servlet.DispatcherServlet.createDefaultStrategy(DispatcherServlet.java:672) org.springframework.web.servlet.DispatcherServlet.getDefaultStrategies(DispatcherServlet.java:640) org.springframework.web.servlet.DispatcherServlet.initHandlerMappings(DispatcherServlet.java:435) org.springframework.web.servlet.DispatcherServlet.initStrategies(DispatcherServlet.java:334) org.springframework.web.servlet.DispatcherServlet.onRefresh(DispatcherServlet.java:323) org.springframework.web.servlet.FrameworkServlet.onApplicationEvent(FrameworkServlet.java:498) org.springframework.web.servlet.FrameworkServlet.onApplicationEvent(FrameworkServlet.java:1) org.springframework.context.event.SourceFilteringListener.onApplicationEventInternal(SourceFilteringListener.java:81) org.springframework.context.event.SourceFilteringListener.onApplicationEvent(SourceFilteringListener.java:66) org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78) org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49) org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76) org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274) org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:383) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:427) org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:341) org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:307) org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:127) javax.servlet.GenericServlet.init(GenericServlet.java:158) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:242) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:259) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:237) org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:281) java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.lang.Thread.run(Unknown Source) root cause

java.lang.NoSuchMethodError: org.springframework.context.ApplicationContext.findAnnotationOnBean(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/annotation/Annotation; org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping.determineUrlsForHandler(DefaultAnnotationHandlerMapping.java:108) org.springframework.web.servlet.handler.AbstractDetectingUrlHandlerMapping.detectHandlers(AbstractDetectingUrlHandlerMapping.java:80) org.springframework.web.servlet.handler.AbstractDetectingUrlHandlerMapping.initApplicationContext(AbstractDetectingUrlHandlerMapping.java:58) org.springframework.context.support.ApplicationObjectSupport.initApplicationContext(ApplicationObjectSupport.java:119) org.springframework.web.context.support.WebApplicationObjectSupport.initApplicationContext(WebApplicationObjectSupport.java:69) org.springframework.context.support.ApplicationObjectSupport.setApplicationContext(ApplicationObjectSupport.java:73) org.springframework.context.support.ApplicationContextAwareProcessor.postProcessBeforeInitialization(ApplicationContextAwareProcessor.java:70) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:350) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1331) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) java.security.AccessController.doPrivileged(Native Method) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:255) org.springframework.web.servlet.DispatcherServlet.createDefaultStrategy(DispatcherServlet.java:672) org.springframework.web.servlet.DispatcherServlet.getDefaultStrategies(DispatcherServlet.java:640) org.springframework.web.servlet.DispatcherServlet.initHandlerMappings(DispatcherServlet.java:435) org.springframework.web.servlet.DispatcherServlet.initStrategies(DispatcherServlet.java:334) org.springframework.web.servlet.DispatcherServlet.onRefresh(DispatcherServlet.java:323) org.springframework.web.servlet.FrameworkServlet.onApplicationEvent(FrameworkServlet.java:498) org.springframework.web.servlet.FrameworkServlet.onApplicationEvent(FrameworkServlet.java:1) org.springframework.context.event.SourceFilteringListener.onApplicationEventInternal(SourceFilteringListener.java:81) org.springframework.context.event.SourceFilteringListener.onApplicationEvent(SourceFilteringListener.java:66) org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78) org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49) org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76) org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274) org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:383) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:427) org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:341) org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:307) org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:127) javax.servlet.GenericServlet.init(GenericServlet.java:158) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:242) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:259) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:237) org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:281) java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

3
The title is wrongly posted by me my issue is following errorGauravP
java.lang.NoSuchMethodError: org.springframework.context.ApplicationContext.findAnnotationOnBeanGauravP
Which version of Spring you are using?Arpit Aggarwal
Hi Gaurav, did you fix this issue?Navakanth

3 Answers

1
votes

It is due to mismatch in Spring jars versions. I upgraded my application to Spring 3 from Spring 2 . We need to remove spring-2.5.6.jar as it is not required with Spring 3.It resolved my problem.

0
votes

I think you are missing an slash in your RequestMapping. Could you try with the next fix?

@RequestMapping(value="/hello" ,method = RequestMethod.GET)
0
votes

In 'HelloWeb-servlet.xml' enable the annotation config by adding ''. You have used the annotation in controller class but how Spring container identifies the Controller.