java.lang.ClassNotFoundException:org.mentawai.core.Controller,我无法建立标准的mentawai连接

java.lang.ClassNotFoundException: org.mentawai.core.Controller, I'm not able to make a standard mentawai connection

提问人:João Manoel 提问时间:11/12/2023 更新时间:11/12/2023 访问量:8

问:

我只是想连接以测试 CRUD 功能,但错误仍然存在,我想不出修复它的方法,我正在使用 Java 8 和 Mentawai 2.5.6,它也是 Hibernate 的应用程序,如果有帮助的话

应用程序管理器

package br.com.merlinmec.mentawai;

import org.mentawai.core.ActionConfig;
import org.mentawai.core.Forward;
import org.mentawai.filter.ValidationFilter;

import br.com.merlinmec.mentawai.ContatoActions;

public class ApplicationManager extends org.mentawai.core.ApplicationManager {
    @Override
       public void loadActions() {
            
        ActionConfig cadastroAction = new ActionConfig("/ContatoActions/insert", ContatoActions.class, "insert");
        cadastroAction.addConsequence(SUCCESS, new Forward("/jsp/agenda.jsp"));
        cadastroAction.addConsequence(ERROR, new Forward("/jsp/novo.jsp"));
        addActionConfig(cadastroAction);

        ActionConfig selectAction = new ActionConfig("/ContatoActions/select", ContatoActions.class, "select");
        selectAction.addConsequence(SUCCESS, new Forward("/jsp/editar.jsp"));
        selectAction.addConsequence(ERROR, new Forward("/jsp/agenda.jsp"));
        addActionConfig(selectAction);

        ActionConfig updateAction = new ActionConfig("/ContatoActions/update", ContatoActions.class, "update");
        updateAction.addConsequence(SUCCESS, new Forward("/jsp/agenda.jsp"));
        updateAction.addConsequence(ERROR, new Forward("/jsp/editar.jsp"));
        addActionConfig(updateAction);

        ActionConfig deleteAction = new ActionConfig("/ContatoActions/delete", ContatoActions.class, "delete");
        deleteAction.addConsequence(SUCCESS, new Forward("/jsp/agenda.jsp"));
        deleteAction.addConsequence(ERROR, new Forward("/jsp/agenda.jsp"));
        addActionConfig(deleteAction);
            
       }

     public void loadFilters() {
         filter(new ValidationFilter());
     }

}

行动

package br.com.merlinmec.mentawai;

import java.io.IOException;
import java.sql.SQLIntegrityConstraintViolationException;
import java.util.List;

import org.mentawai.core.BaseAction;
import org.mentawai.rule.RegexRule;
import org.mentawai.rule.StringRule;
import org.mentawai.validation.Validatable;
import org.mentawai.validation.Validator;

import br.com.merlinmec.model.*;

public class ContatoActions extends BaseAction implements Validatable{
    private DAOImpl DAO = new DAOImpl();
    
     public void prepareValidator(Validator val, String method) {
         
         String regexAlfanumerico = "[a-zA-Zà-úÀ-Ú0-9\\s]+";
         String regexEmail = "^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$";
         String regexTelefone = "\\(\\d{2}\\)9\\d{4}-\\d{4}";        
         
         if (method != null && method.equals("insert") && isPost()) {
             val.requiredFields("Campo Obrigatório!","nome", "fone","email","rua","numero","bairro","cidade","estado");
             val.add("nome", StringRule.getInstance(3,25), "Campo Nome com o tamanho errado (mín = 3, máx = 25)");
             val.add("email", RegexRule.getInstance(regexEmail), "Email não está no formato correto!");
             val.add("fone", RegexRule.getInstance(regexTelefone), "Telefone não está no formato correto (XX)9XXXX-XXXX !");
             val.add("fone", StringRule.getInstance(0,14), "Campo Telefone com o tamanho errado (máx = 14)");
             val.add("rua",RegexRule.getInstance(regexAlfanumerico), "O campo Rua deve conter somente caracteres alfanuméricos!");
             val.add("rua", StringRule.getInstance(5,40), "Campo Rua com o tamanho errado (mín = 5, máx = 40)");
             val.add("numero",RegexRule.getInstance(regexAlfanumerico), "O campo Nº da Residência deve conter somente caracteres alfanuméricos!");
             val.add("numero", StringRule.getInstance(0,10), "Campo Nº da Residência com o tamanho errado (máx = 10)");
             val.add("bairro",RegexRule.getInstance(regexAlfanumerico), "O campo Bairro deve conter somente caracteres alfanuméricos!");
             val.add("bairro", StringRule.getInstance(5,40), "Campo Bairro com o tamanho errado (mín = 5, máx = 40)");
             val.add("cidade",RegexRule.getInstance(regexAlfanumerico), "O campo Cidade deve conter somente caracteres alfanuméricos!");
             val.add("cidade", StringRule.getInstance(5,30), "Campo Cidade com o tamanho errado (mín = 5, máx = 30)");
             val.add("estado",RegexRule.getInstance(regexAlfanumerico), "O campo Estado deve conter somente caracteres alfanuméricos!");
             val.add("estado", StringRule.getInstance(4,20), "Campo Estado com o tamanho errado (mín = 4, máx = 20)");
         }  else if (method != null && method.equals("update") && isPost()) {
             val.requiredFields("Campo Obrigatório!","nome", "fone","email","rua","numero","bairro","cidade","estado");
             val.add("nome", StringRule.getInstance(3,25), "Campo Nome com o tamanho errado (mín = 3, máx = 25)");
             val.add("email", RegexRule.getInstance(regexEmail), "Email não está no formato correto!");
             val.add("fone", RegexRule.getInstance(regexTelefone), "Telefone não está no formato correto (XX)9XXXX-XXXX !");
             val.add("fone", StringRule.getInstance(0,14), "Campo Telefone com o tamanho errado (máx = 14)");
             val.add("rua",RegexRule.getInstance(regexAlfanumerico), "O campo Rua deve conter somente caracteres alfanuméricos!");
             val.add("rua", StringRule.getInstance(5,40), "Campo Rua com o tamanho errado (mín = 5, máx = 40)");
             val.add("numero",RegexRule.getInstance(regexAlfanumerico), "O campo Nº da Residência deve conter somente caracteres alfanuméricos!");
             val.add("numero", StringRule.getInstance(0,10), "Campo Nº da Residência com o tamanho errado (máx = 10)");
             val.add("bairro",RegexRule.getInstance(regexAlfanumerico), "O campo Bairro deve conter somente caracteres alfanuméricos!");
             val.add("bairro", StringRule.getInstance(5,40), "Campo Bairro com o tamanho errado (mín = 5, máx = 40)");
             val.add("cidade",RegexRule.getInstance(regexAlfanumerico), "O campo Cidade deve conter somente caracteres alfanuméricos!");
             val.add("cidade", StringRule.getInstance(5,30), "Campo Cidade com o tamanho errado (mín = 5, máx = 30)");
             val.add("estado",RegexRule.getInstance(regexAlfanumerico), "O campo Estado deve conter somente caracteres alfanuméricos!");
             val.add("estado", StringRule.getInstance(4,20), "Campo Estado com o tamanho errado (mín = 4, máx = 20)");   
         }  
     }
     
    public String insert() throws IOException, SQLIntegrityConstraintViolationException {
        String nome = input.getString("nome");
        String email = input.getString("email");
        String telefone = input.getString("telefone");
        String rua = input.getString("rua");
        String numero = input.getString("numero");
        String bairro = input.getString("bairro");
        String cidade = input.getString("cidade");
        String estado = input.getString("estado");
        
        JavaBeans contato = new JavaBeans();
        contato.setNome(nome);
        contato.setEmail(email);
        contato.setFone(telefone);
        contato.setRua(rua);
        contato.setBairro(bairro);
        contato.setNumero(numero);
        contato.setCidade(cidade);
        contato.setEstado(estado);
        
        try {
            DAO.insertContatos(contato);
            addMessage("Contato inserido com sucesso!");
        } catch (Exception e) {
            addError("Erro ao inserir contato: " + e.getMessage());
        }

        return SUCCESS;
    }
    
    public String select() {
        String nome = input.getString("nome");
        String username = input.getString("email");
        String telefone = input.getString("telefone");
        String rua = input.getString("rua");
        String numero = input.getString("numero");
        String bairro = input.getString("bairro");
        String cidade = input.getString("cidade");
        String estado = input.getString("estado");
        try {
            List<JavaBeans> lista = DAO.listarContatos();
            //getRequest().setAttribute("listaContatos", lista); 
        } catch (Exception e) {
            addError("Erro ao obter lista de contatos: " + e.getMessage()); 
        }
        return SUCCESS;
    }
    
    public String update() {
        String nome = input.getString("nome");
        String username = input.getString("email");
        String telefone = input.getString("telefone");
        String rua = input.getString("rua");
        String numero = input.getString("numero");
        String bairro = input.getString("bairro");
        String cidade = input.getString("cidade");
        String estado = input.getString("estado");
        
        JavaBeans contato = new JavaBeans();
        try {
            DAO.updateContatos(contato);
            addMessage("Contato atualizado com sucesso!");
        } catch (Exception e) {
            addError("Erro ao atualizar contato: " + e.getMessage());
        }

        return SUCCESS;
        
    }
    
    public String delete() {
        
        try {
            int idcon = input.getInt("idcon");
            boolean deleted = DAO.deleteContatos(idcon);
            if (deleted) {
                addMessage("Contato deletado com sucesso!");
            } else {
                addError("Contato não encontrado para deletar.");
            }
        } catch (Exception e) {
            addError("Erro ao deletar contato: " + e.getMessage());
        }

        return SUCCESS;
    }
    

}

JSP 页面来测试 mentawai e 连接

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@taglib prefix="mtw" uri="http://www.mentaframework.org/tags-mtw/"%>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Agenda de Contatos</title>
    <link rel="icon" href="imagens/favicon.png">
    <link rel="stylesheet" href="style.css">
    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.15/jquery.mask.min.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
    <h1>Criar Novo Contato</h1>
    <mtw:form action = "ContatoActions.insert.mtw" method="post">
        <table>
            <tr>
                <td><mtw:input name="nome" size="25" class="Caixa1" placeHolder="Nome"/></td>
                    <mtw:outError field="nome">
                    <font color="red"><mtw:out /></font>
                    </mtw:outError>
            </tr>
            <tr>
                <td><mtw:input name="fone" class="Caixa2" onkeypress="$(this).mask('(00)90000-0000');" placeholder="Telefone"/></td>
                    <mtw:outError field="fone">
                    <font color="red"><mtw:out /></font>
                    </mtw:outError>
            </tr>
            <tr>
                <td><mtw:input name="email" class="Caixa1" size="25" placeholder="E-mail"/></td>
                    <mtw:outError field="email">
                    <font color="red"><mtw:out /></font>
                    </mtw:outError>
            </tr>
            <tr>
                <td><mtw:input name="rua" class="Caixa1" maxlength="40" placeholder="Rua"/></td>
                    <mtw:outError field="rua">
                    <font color="red"><mtw:out /></font>
                    </mtw:outError>
            </tr>
            <tr>
                <td><mtw:input name="numero" class="Caixa1" maxlength="10" placeholder="Nº da Residência"/></td>
                    <mtw:outError field="rua">
                    <font color="red"><mtw:out /></font>
                    </mtw:outError>
            </tr>
            <tr>
                <td><mtw:input name="bairro" class="Caixa1" maxlength="40" placeholder="Bairro"/></td>
                    <mtw:outError field="bairro">
                    <font color="red"><mtw:out /></font>
                    </mtw:outError>
            </tr>
            <tr>
                <td><mtw:input name="cidade" class="Caixa1" maxlength="30" placeholder="Cidade"/></td>
                    <mtw:outError field="cidade">
                    <font color="red"><mtw:out /></font>
                    </mtw:outError>
            </tr>
            <tr>
                <td><mtw:input name="estado" class="Caixa1" maxlength="20" placeholder="Estado"/></td>
                    <mtw:outError field="estado">
                    <font color="red"><mtw:out /></font>
                    </mtw:outError>
            </tr>
        </table>
        <mtw:submit value="Adicionar Contato"  />
    </mtw:form>

</body>
</html>

我已经测试了该项目是否通过 Hibernate 连接到数据库。

我已经尝试更新和检查 maven 依赖项的冲突,但它没有返回任何问题,我尝试访问不同的 URL 以查看是否可以访问任何 URL,我尝试在线复制其他项目以测试是否出现项目屏幕,但它们也向控制器显示了相同的相关错误。

java-8 类NotFoundException

评论

0赞 Marc Le Bihan 11/13/2023
你能添加一些日志来解释你到底遇到了什么问题,当你在做什么时吗?

答: 暂无答案