Problema com o Struts/Hibernate

0 respostas
pauloperes

Ola a todos,

Estou tentando fazer um pequeno cadastro utilizando o Hibernate com o Struts, vejam os meus códigos:

Aluno.java

package web_struts.webapp.beans;

// Importando as classes
import javax.persistence.*;
import org.apache.struts.action.*;

@Entity(access=AccessType.FIELD)
@Table(name="ALUNO")
@SequenceGenerator(name="SEQ_ALUNO", sequenceName="SEQ_ALUNO")
public class Aluno extends ActionForm {
    @Id(generate=GeneratorType.SEQUENCE, generator="SEQ_ALUNO")
    private int id;
    
    @Column(name="nick", nullable=false, length=20)
    private String nick;
    
    @Column(name="senha", nullable=false, length=20)
    private String senha;
    
    @Column(name="nome", nullable=false, length=50)
    private String nome;
    
    @Column(name="email", nullable=false, length=50)
    private String email;
    
    public void setId(int id){
        this.id = id;
    }
    
    public int getId(){
        return this.id;
    }
    
    public void setNick(String nick){
        this.nick = nick;
    }
    
    public String getNick(){
        return this.nick;
    }
    
    public void setSenha(String senha){
        this.senha = senha;
    }
    
    public String getSenha(){
        return this.senha;
    }
    
    public void setNome(String nome){
        this.nome = nome;
    }
    
    public String getNome(){
        return this.nome;
    }
    
    public void setEmail(String email){
        this.email = email;
    }
    
    public String getEmail(){
        return this.email;
    }
}

Agora meu formulário de cadastro

<%@taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>

<html:html>
    <head><title>Cadastro de Alunos</title></head>    
    <body>
        <table>
            <html:form action="/cadastra_aluno" focus="nick">
                <tr>
                    <td>Nick</td>
                    <td><html:text property="nick" size="16"/></td>
                </tr>
                <tr>
                    <td>Senha</td>
                    <td><html:password property="senha" size="16"/></td>
                </tr>
                <tr>
                    <td>Nome</td>
                    <td><html:text property="nome" size="50"/></td>
                </tr>
                <tr>
                    <td>E-mail</td>
                    <td><html:text property="email" size="40"/></td>
                </tr>
                <tr>
                    <td><html:submit>Enviar dados</html:submit></td>
                    <td><html:reset>Resetar campos </html:reset></td>
                </tr>        
            </html:form>
        </table>
    </body>
</html:html>

E minha ação para o cadastro

package web_struts.webapp.action;

import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.SessionFactory;
import org.hibernate.Session;
import web_struts.webapp.beans.Aluno;

public class CadastraAluno extends Action {
    public ActionForward execute(ActionMapping map, ActionForm form,
            HttpServletRequest req, HttpServletResponse resp) throws Exception {
        
        AnnotationConfiguration cfg = new AnnotationConfiguration();
        
        // Adcionando as classes anotadas
        cfg.addAnnotatedClass(web_struts.webapp.beans.Aluno.class);
        
        // Adcionando a configuração as propriedades de conexão com o banco de dados
        cfg.setProperty( "hibernate.dialect", "org.hibernate.dialect.PostgreSQLDialect" );
        cfg.setProperty( "hibernate.connection.driver_class", "org.postgresql.Driver" );
        cfg.setProperty( "hibernate.connection.url", "jdbc:postgresql:struts" );
        cfg.setProperty( "hibernate.connection.username", "postgres" );
        cfg.setProperty( "hibernate.connection.password", "kamikaze" );
        cfg.setProperty( "hibernate.connection.autocommit", "true" );
        cfg.setProperty( "hibernate.connection.show_sql", "true");
        
        // Criando uma Sessao
        SessionFactory factory = cfg.buildSessionFactory();
        Session sessao = factory.openSession();
        
        // Instanciando um objeto do tipo Aluno
        Aluno aluno = (Aluno) form;
        
        try{
            // Inserindo os dados
            sessao.save(aluno);
            sessao.flush();
            sessao.close();    
        } catch (Exception e){
            e.printStackTrace();
            
        }
        
        
        // Redirecinando
        return map.findForward("ok_cadastra_aluno");
    }
}

E finalmente o erro:

type Exception report

message 

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

exception 

javax.servlet.ServletException: Could not determine type for: org.apache.struts.upload.MultipartRequestHandler, for columns: [org.hibernate.mapping.Column(multipartRequestHandler)]
	org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)


root cause 

org.hibernate.MappingException: Could not determine type for: org.apache.struts.upload.MultipartRequestHandler, for columns: [org.hibernate.mapping.Column(multipartRequestHandler)]
	org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:265)
	org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:252)
	org.hibernate.mapping.Property.isValid(Property.java:174)
	org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:325)
	org.hibernate.mapping.RootClass.validate(RootClass.java:188)
	org.hibernate.cfg.Configuration.validate(Configuration.java:839)
	org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1000)
	web_struts.webapp.action.CadastraAluno.execute(CadastraAluno.java:29)
	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)

è isso,

Valeu,

Paulo Henrique Peres

Criado 14 de julho de 2005
Respostas 0
Participantes 1