Java beans aguem pode me ajudar?

11 respostas
K

olá pessoal…
bem eu estou com mais uma dúvida…é em se tratando da estrutura do java beans…
eu tenho as páginas:
-caminhao.htm
-caminhao.jsp
-caminhao.java ( classe dos atributos do caminhão)
-gucaminhao.java (classe dos métodos do caminhão)
-banco.java (classe de conexão ao banco)
Todas os atributos estão com o mesmo nome em todos os lugares desde as pagimas html até o banco de dados.
mas eu não sei se o meu jsp esta correto pois esta gerando o seguinte erro:

org.apache.jasper.JasperException: /caminhao.jsp(2,0) The value for the useBean class attribute classes.meupacote.caminhao is invalid.
   org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
   org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:405)
   org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:146)
   org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1223)
   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:3270)
   org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:189)
   org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
   org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
   org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
   org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

caminhão .jsp

<%@ page language="java" import="java.sql.*" session ="true"%>
<jsp:useBean id="cam" class= "classes.meupacote.caminhao" scope ="session">
</jsp:useBean>
<jsp:useBean id= "cam1" class= "classes.meupacote.gucaminhao" scope ="session">
     <jsp:setProperty name="cam1" property="modelo" />
     <jsp:setProperty name="cam1" property="marca" />
     <jsp:setProperty name="cam1" property="placacaminhao" />
</jsp: useBean>
<% boolean resultado = gucaminhao.inserir("modelo","marca","placacaminhao");%>
<%   
   if (resultado == true) 
       response.sendRedirect("http://localhost:8080/frete/caminhao?status=Caminhão 
                             inserido com sucesso"); 
   else response.sendRedirect("http://localhost:8080/frete/caminhao?status=Caminhão 
                            já existente"); 

%>
<html>
<head>
<title>Caminhao</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

</body>
</html>
obrigada...

caminhao.java(classe caminhao)

public class caminhao implements java.io.Serializable {
    
      private String modelo;
      private String marca;
      private String placacaminhao;
      
   public caminhao(){}
    public caminhao(String modelo, String marca, String placacaminhao) {
         this.modelo = modelo;
         this.marca = marca;
         this.placacaminhao = placacaminhao;
    }
   public String getmodelo(){
        return modelo;      
    }
    public void setmodelo(String mo){
       modelo = mo;
    }
    
    public String getmarca(){
       return marca;      
    }
    public void setmarca(String ma){
       marca = ma;
    }
    
    public String getplacacaminhao(){
        return placacaminhao;      
    }
    public void setplacacaminhao(String pc){
       placacaminhao = pc;
    }
   }

gucaminhao.java(classe com os metodos caminhao)

import java.sql.*;
import java.util.*;


public class gucaminhao {
// Inserir caminhao    


   public void inserir(caminhao c){
       String sql = "insert into caminhao (modelo, marca, placacaminhao) values ('"+c.getmarca()+"', '"+c.getmodelo()+"','"+c.getplacacaminhao()+"')";
       
       Banco banco = new Banco();
       banco.conectar();
       banco.executar(sql);
       banco.desconectar();
   }
}

Se alguem puder me ajudar…

11 Respostas

kina

use assim:

&lt;jsp:useBean id= "cam1" class= "meupacote.gucaminhao" scope ="session"&gt;

apenas retirei o classes.

K
Eu retirei o classes mas agora ele diz que o erro é outro
javax.servlet.ServletException: meupacote/caminhao (wrong name: classes/meupacote/caminhao)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause 

java.lang.NoClassDefFoundError: meupacote/caminhao (wrong name: classes/meupacote/caminhao)
	java.lang.ClassLoader.defineClass1(Native Method)
	java.lang.ClassLoader.defineClass(Unknown Source)
	java.security.SecureClassLoader.defineClass(Unknown Source)
	org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1629)
	org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:850)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1299)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1181)
	org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1210)
	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:3270)
	org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:189)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

as minhas pastas estão organizadas assim
- C:
-TomCat5.5
-webapps
-frete (onde estão os html e os jsp)
-WEB-INF
-classes
-meupacote(onde estão os arquivos .java e .class)

Eu até tentei dentro da pasta WEB-INF colocar uma pasta lib com os arquivos .jar mas tb acontece o mesmo erro...
Já procurei por arquivos com o mesmo nome para ver se estava afetando mas também não encontrei se alguem puder me ajudar obrigada..

-

andgonca

Qual package vc está declarando nas suas classes?

K

package classes.meupacote;

andgonca

Declare apenas “meupacote” retirando o “classes” também da declaração de pacotes.

K
:( eu tirei o classes mas o erro mudou..
org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 8 in the jsp file: /caminhao.jsp
Generated servlet error:
gucaminhao cannot be resolved

An error occurred at line: 8 in the jsp file: /caminhao.jsp
Generated servlet error:
u cannot be resolved


	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:397)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:288)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
andgonca

Vc retirou o package incorreto da chamada useBean?

K

Qual packager? Eu só retirei o classes das declarações dos pacotes dos .java e compilei de novo…

andgonca

Retire-o também das linhas:

<jsp:useBean id= "cam1" class= "classes.meupacote.gucaminhao" scope ="session">

e

<jsp:useBean id="cam" class= "classes.meupacote.caminhao" scope ="session">

Deixando-as assim:

<jsp:useBean id= "cam1" class= "meupacote.gucaminhao" scope ="session">

e

<jsp:useBean id="cam" class= "meupacote.caminhao" scope ="session">
K

Eu já tinha tirado de lá também, mas o erro fala que ocorreu na linha 8 do jsp e a linha 8 é:

<% boolean resultado = gucaminhao.inserir(c);%>

é dessa forma mesmo que eu faço para inserir os dados?

andgonca

Tem um problema:

Pelo que eu vi, o método inserir da classe gucaminhao é void, ou seja, não retorna valor algum. Entretanto, vc está atribuindo o valor de retorno dele para a variável resultado no JSP.

Alternativas? Retirar a atribuição no JSP ou fazer o método retornar um boolean.

Criado 27 de junho de 2005
Ultima resposta 30 de jun. de 2005
Respostas 11
Participantes 3