Problemas com JSP+Bean

11 respostas
J

Fala Moçada…

É o seguinte... tô começando agora a usar JSP+Bean... mas tô tomando um coro daquele malandros.... queria saber se alguém pode me ajudar... tô precisando muito aprender isto rápidinho...

Estou fazendo um teste bem bobo... mas nem mesmo ele consegue executar... bem... aí vão os códigos!

index.jsp

<jsp:useBean id='hello' class='HelloBean' />

<html>
	<head>
		<title> Hello World em Bean </title>
	</head>

	<body>
		<h1>Saudação tosca em Bean</h1>
		
		<p>
			Esta é a minha saudação :
			
			<jsp:getProperty name='hello' property='greeting' />
		</p>
	</body>
</html>

este é o código da classe HelloBean.class

public class HelloBean 
{
	private String greeting;
	
	public HelloBean()
	{
		this.greeting = "Hello World";
	}
	
	public String getGreeting()
	{
		return this.greeting;
	}
}
Estou usando como servidor web o Tomcat 5.0.28, e os aqruivos estão nas seguintes pastas...
  • ‘C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.0\webapps\teste\index.jsp’

  • ‘C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.0\webapps\teste\WEB-INF\classes\HelloBean.class’

    Quando eu executo o jsp o Tomcat me mostra os seguintes erros…

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 1 in the jsp file: /index.jsp
Generated servlet error:
C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\teste\org\apache\jsp\index_jsp.java:42: cannot resolve symbol
symbol  : class HelloBean 
location: class org.apache.jsp.index_jsp
      HelloBean hello = null;
      ^


An error occurred at line: 1 in the jsp file: /index.jsp
Generated servlet error:
C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\teste\org\apache\jsp\index_jsp.java:44: cannot resolve symbol
symbol  : class HelloBean 
location: class org.apache.jsp.index_jsp
        hello = (HelloBean) _jspx_page_context.getAttribute("hello", PageContext.PAGE_SCOPE);
                 ^


An error occurred at line: 1 in the jsp file: /index.jsp
Generated servlet error:
C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\teste\org\apache\jsp\index_jsp.java:46: cannot resolve symbol
symbol  : class HelloBean 
location: class org.apache.jsp.index_jsp
          hello = new HelloBean();
                      ^


An error occurred at line: 14 in the jsp file: /index.jsp
Generated servlet error:
C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\teste\org\apache\jsp\index_jsp.java:64: cannot resolve symbol
symbol  : class HelloBean 
location: class org.apache.jsp.index_jsp
      out.write(org.apache.jasper.runtime.JspRuntimeLibrary.toString((((HelloBean)_jspx_page_context.findAttribute("hello")).getGreeting())));
                                                                        ^
4 errors



	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:332)
	org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:412)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.

Pelo amor de Deus… alguém me ajuda…

Obrigado…

Java-Eater…

11 Respostas

R

Cara, é o seguinte…

O seu HelloBean está em um pacote?

Se sim, vc precisa dar um import no seu JSP

<%@ page import="seupacote.suaclasse" %>

Acho que é isso que esta dando problema.

Flw

J

Fala moçada…

É o seguinte... este "HelloBean.class", sim está compilado... e não está em nenhum pacote específico...

o seu caminho:

C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.0\webapps\teste\WEB-INF\classes\HelloBean.class

naum está em nenhum package, mas no diretório classes… direto!

Valew moçada…

R

Cara, se eu naum me engano, ele precisa estar em um pacote, para que vc no JSP chame

<%@ page import="seupacote.suaclasse" %>

Faz o teste, coloque sua classe em um pacote e importe-a no JSP.

Flw :wink:

J

Fala moçada… e aí Renan…

É o seguinte... montei o HelloBean.class dentro do package teste... e então acrescentei a linha
<%@ page import="teste.HelloBean" %>

no arquivo index.jsp… e claro a instrução

package teste;

no java do HelloBean.class antes de compilá-lo novamente

mas, agora quando eu tento executar o Tomcat me acusa o seguinte erro.

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

org.apache.jasper.JasperException: /index.jsp(3,0) The value for the useBean class attribute HelloBean is invalid.
	org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
	org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409)
	org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:150)
	org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1227)
	org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1116)
	org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
	org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
	org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)
	org.apache.jasper.compiler.Node$Root.accept(Node.java:456)
	org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
	org.apache.jasper.compiler.Generator.generate(Generator.java:3272)
	org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:244)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:470)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.

Juro para vcs que eu não tô conseguindo entender estas Exceptions…

Valew…

R

Teria como vc postar seu JSP aqui, ou me mandar por email…

Flw

J

Fala Renan...

Eis o meu JSP... é bem simples....

<%@ page import="teste.HelloBean" %>

<jsp:useBean id='hello' class='HelloBean' />

<html>
	<head>
		<title> Hello World em Bean </title>
	</head>

	<body>
		<h1>Saudação tosca em Bean</h1>
		
		<p>
			Esta é a minha saudação :
			
			<jsp:getProperty name='hello' property='greeting' />
		</p>
	</body>
</html>

lembrando que eu coloquei o HelloBean.class dentro de

../webapps/teste/WEB-INF/classes/teste/HelloBean.class

Valew....

R
"Java_Eater":
Fala Renan...

Eis o meu JSP... é bem simples....

<%@ page import="teste.HelloBean" %>

<jsp:useBean id='hello' class='teste.HelloBean' />

<html>
	<head>
		<title> Hello World em Bean </title>
	</head>

	<body>
		<h1>Saudação tosca em Bean</h1>
		
		<p>
			Esta é a minha saudação :
			
			<jsp:getProperty name='hello' property='greeting' />
		</p>
	</body>
</html>

lembrando que eu coloquei o HelloBean.class dentro de

../webapps/teste/WEB-INF/classes/teste/HelloBean.class

Valew....

Cara, desculpe a demora, é que eu estava meio enrolado aqui.

Olha, testei seu codigo e realmente estava dando erro.

O que eu fiz...

<%@ page language="java" %>
<%@ page import="br.com.sorana.serverSide.beans.pecas.FamiliaBean" %>


<jsp:useBean id="familia" class="br.com.sorana.serverSide.beans.pecas.FamiliaBean" />

<html>
   <head>
      <title> Ola </title>
   </head>

   <body>
      <h1>Saudação tosca em Bean</h1>      
      <p>
         Esta é a minha saudação :         
         <jsp:getProperty name="familia" property="fmlDescricao"/>
      </p>
   </body>
</html>

Este codigo acima eu fiz utilizando uma classe aqui do serviço chamada FamiliaBean que contem um metodo getFmlDescricao()

A unica coisa que eu fiz foi colocar o caminho useBean

<jsp:useBean id="familia" class="br.com.sorana.serverSide.beans.pecas.FamiliaBean" />

no caso seu

<jsp:useBean id="hello" class="teste.HelloWord" />

Espero ter ajudado e mais uma vez desculpe a demora.

Abraços,
:grin:

J

Fala Renan…

Valew fí... funcionou bacana agora...

 Muito obrigado pela sua ajuda....
A

A sua classe HelloBean esta com mesmo nome do objeto da classe HelloBean, ou seja, a classe e o objeto estão com mesmo nome.

se vc ainda estiver com esse problema, mandarei um exemplo que esta rodando certinho e apartir dele vc fará o que quiser.

F

Como vc está copilando essa sua classe do bean???

O package ta certo??

diga como vc está fazendo, ta colocando o public static void main, para aceitar a copilção???

Valeu!!

N

Hum…
Ele foi compilado? Existe um .class? :roll:

Criado 24 de setembro de 2004
Ultima resposta 24 de set. de 2004
Respostas 11
Participantes 5