Seguinte, eu tenho a seguinte jsp
<%@ page import="cls.RetornaNome" %>
<%@ page import="java.lang.String.*" %>
<%!
RetornaNome rNome = new RetornaNome();
String msg = " ";
String nm = " ";
%>
<%
msg = rNome.getNome("junior");
%>
<html>
<body>
<%= msg %>
</body>
</html>
Eis minha classe:
public class RetornaNome {
public String getNome(String nome){
return "Meu nome é: "+nome;
}
}
Quando executo a jsp, aparece o seguinte erro:
exception
javax.servlet.ServletException: RetornaNome
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:272)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.lang.NoClassDefFoundError: RetornaNome
org.apache.jsp.teste_jsp.<init>(teste_jsp.java:13)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
java.lang.reflect.Constructor.newInstance(Unknown Source)
java.lang.Class.newInstance0(Unknown Source)
java.lang.Class.newInstance(Unknown Source)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:148)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:315)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
Em fim, como eu posso trabalhar com classes? A jsp esta importando certo minha classe, pois quando eu tiro os comandos: RetornaNome rNome = new RetornaNome(); e msg = rNome.getNome(“junior”); a página funfeia legal.
Cara, o erro apresentado é que sua classe não foi importada corretamente. Dê uma olhada no import, veja se a classe está realmente neste pacote.
Mas quando eu coloco o seguinte código:
<%@ page import="cls.RetornaNome" %>
<%@ page import="java.lang.String.*" %>
<%!
String msg = " ";
%>
<%
msg = "Marcelo Junior";
%>
<html>
<body>
<%= msg %>
</body>
</html>
Com o codigo acima, funciona certo, veja q eu importei o RetornaNome, mas não uso, e da tudo certo.
Bem, a minha classe esta dentro do arquivo classes do tomcat
WEB-INF/classes/cls/RetornaNome.class
Você colocou o package cls;
.
Aqui seu código funcionou normalmente.