Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在jsp页面中调用java方法时,它显示servlet.service异常nosuchmethod_Java_Jsp - Fatal编程技术网

在jsp页面中调用java方法时,它显示servlet.service异常nosuchmethod

在jsp页面中调用java方法时,它显示servlet.service异常nosuchmethod,java,jsp,Java,Jsp,我正在jsp页面中调用java方法,该页面显示servlet.service异常nosuch方法异常或类 <%@page import="java.util.ArrayList"%> <%@page import="Model.Validation"%> <% String username=request.getParameter("uname"); String password=request.getParameter("password"); System.

我正在jsp页面中调用java方法,该页面显示servlet.service异常nosuch方法异常或类

<%@page import="java.util.ArrayList"%>
<%@page import="Model.Validation"%>
<%
String username=request.getParameter("uname");
String password=request.getParameter("password");
System.out.print(username+"\nhellloo\n"+password+"\n re\n");
ArrayList<String> names=Validation.validateuname(username,password);
String name=(String)names.get(0);
String role=(String)names.get(1);
 if(role.equals("Administrator"))
 {
out.print("{success:true,errors:{reason:'Administrator'},uname:{name:'"+name+"'}}");

}else if(role.equals("User"))
 {
out.print("{success:true,errors:{reason:'User'}}");

}else
 {
 out.print("{success:false,errors:{reason:'User name or Password is wrong, please try              again'}}");

  }

%>

严重:Servlet jsp的Servlet.service()引发异常 java.lang.NoSuchMethodError:Model.Validation.ValidateName(Ljava/lang/String;Ljava/lang/String;)Ljava/util/ArrayList; 在org.apache.jsp.check\u 005flogin\u jsp.\u jsp服务(check\u 005flogin\u jsp.java:61) 位于org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 位于org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) 位于org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 位于org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 位于org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) 位于org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) 位于org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 位于java.lang.Thread.run(未知源)


StackTrace告诉您没有方法

public class Validation {
    public static ArrayList<String> validateuname(String, String) {
        ArrayList<String> ls = new ArrayList<String>();
        //a nice implementation goes here!
        return ls; 
    }
}
公共类验证{
公共静态ArrayList validateuname(字符串,字符串){
ArrayList ls=新的ArrayList();
//这里有一个很好的实现!
返回ls;
}
}
检查此方法是否有效。如果方法正确,则重新编译代码并再次部署web应用程序


代码中存在一个主要问题,不能使用scriptlet(JSP中
中的Java代码)。关于这方面的问题和解决方案,有进一步的解释:


在此行中抛出异常

ArrayList<String> names=Validation.validateuname(username,password);
ArrayList name=Validation.validateName(用户名、密码);
验证是引用吗?如果它是对对象的引用,请检查该类中的validatename()方法。从您的代码中,我可以说它不是您试图用类名调用ValueDateName()的引用。 试试这个:

  ArrayList<String> names=new Validation().validateuname(username,password);
ArrayList name=new Validation().validateName(用户名、密码);
  • 确保验证类中存在方法
    validateName

  • 确保已编译该类,并将其保存到服务器中适当的项目目录中(似乎正在使用Tomcat),并且已重新启动服务器。请注意,在每个新方法声明中,都需要重新启动服务器


  • 我已经声明了这个方法,如果我运行java,它就可以工作了class@YarramReddy发布您的
    验证#validateName
    方法以检查任何错误。@YarramReddy您可以发布您的模型类。