Java.lang.NoSuchMethodError exception

I am trying to upload pdf files to a server. And i; m using the following code block in the controller:

@RequestMapping(value = /submit, method = RequestMethod.POST) public String upload(UploadItem uploadItem, BindingResult result, HttpServletRequest request, HttpSession session) { //some code here String name = request.getServletContext().getRealPath("/pdf/" + filename); File dest = new File(name); try { file.transferTo(dest); }catch(Exception e){ System.err.println(e); } return "redirect:/details"; 

I am doing this to save a pdf file to a pdf file. It works fine on my local host, but when I execute this on the server, I make the following exception:

 exception org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getServletContext()Ljavax/servlet/ServletContext; org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:839) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560) javax.servlet.http.HttpServlet.service(HttpServlet.java:637) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) root cause java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getServletContext()Ljavax/servlet/ServletContext; frontend.controller.EsteemRatingsController.handleFormUpload(EsteemRatingsController.java:113) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:601) org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436) org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560) javax.servlet.http.HttpServlet.service(HttpServlet.java:637) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 

If I delete the lines that are indicated above in the controller class, it works (from the source without downloading PDF files). Can anyone help me with this?

+4
source share
1 answer

This request.getServletContext() method was introduced in servlet 3.0. Make sure your container / library supports this version.

edit: tomcat 6 has only servlet 2.5, see http://tomcat.apache.org/whichversion.html

it can be auto-updated: ServletContext and Spring MVC

 public class Xxxx{ @Autowired ServletContext context; @RequestMapping(value = "/submit", method = RequestMethod.POST) public String upload(UploadItem uploadItem, BindingResult result, HttpServletRequest request, HttpSession session) { //some code here String name = context.getRealPath("/pdf/" + filename); ... 
+21
source

All Articles