错误
java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getPart(Ljava/lang/String;)Ljavax/servlet/http/Part;
at com.xinge.storage.servlet.UpLoadFileServlet.doPost(UpLoadFileServlet.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
Truncated. see log file for complete stacktrace

代码public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
     String key = request.getParameter("key");
     key=key.trim();     if(key ==null || "".equals(key)){
            key = System.currentTimeMillis()+"";
        }        Part part = request.getPart("file");
        String head = part.getHeader("content-disposition");        String fileName = getFinalFileName(head);
                
        //项目的部署路径    tomcat获取项目部署路径方法不适用于weblogic项目
        //String path = request.getServletContext().getRealPath("/files");
        
        String path=this.getClass().getClassLoader().getResource("/").getPath();
        String s[] = path.split("WEB-INF");
//写入磁盘
        InputStream is = (InputStream) part.getInputStream();
        FileOutputStream fos = new FileOutputStream(s[0]+"files/"+fileName);
        byte[] b = new byte[512];        while((is.read(b)) != -1){
         fos.write(b);
        }
        is.close();
        fos.flush();
        fos.close();
        
        try {
            //发布消息
            new Provider().sendMessage("FILES", "<upl/>"+s[0]+"files/"+fileName+ "<key/>" + key);
          
            //数据插入数据库
            new FilesDao().addFile(key,fileName,"/files/"+fileName);            List<ArchiveFile> list = new FilesDao().getFiles();            request.setAttribute("list",list);
            
            //System.out.println(list);
        }catch (Exception e){
            request.setAttribute("msg", "上传失败");
            e.printStackTrace();
        }
        request.getRequestDispatcher("page/index.jsp").forward(request, response);
    }在自己的weblogic上运行没事jdk1.7  公司的weblogic  jdk1.6服务器上就报错了 我怀疑是公司服务weblogic jdk版本太低导致的,求救大神

解决方案 »

  1.   

    java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getPart(Ljava/lang/String;)Ljavax/servlet/http/Part;NoSuchMethodError异常就是说的没有方法匹配,说明方法不对异常HttpServletRequest.getPart(Ljava/lang/String;) 是getPart方法有问题,可能就是版本低了,不兼容的问题,有一些方法低版本没有这个不是JDK版本低,而是Servlet3.0新增了request.getParts()/getPart(String filename) api,所以是servlet.jar包换成3.0以后吧