Java 错误表示找不到类

Java 错误表示找不到类,java,Java,例外情况 public boolean addUser(User user) throws ClassNotFoundException, SQLException { try { readWriteLock.writeLock().lock(); String sql ="INSERT INTO User VALUES ("+0+",'"+user.getName()+"','"+user.getType()+"',AES_ENCRYPT('"+user

例外情况

public boolean addUser(User user) throws ClassNotFoundException, SQLException {
    try {
        readWriteLock.writeLock().lock();
        String sql ="INSERT INTO User VALUES ("+0+",'"+user.getName()+"','"+user.getType()+"',AES_ENCRYPT('"+user.getPassword()+"','') ) ";
        Connection connection = DBConnection.getConnection();
        Statement stm = connection.createStatement();
        int res = stm.executeUpdate(sql);
        return res > 0;
    } finally {
        readWriteLock.writeLock().unlock();
    }
}
无法更正我的错误。。。 我远程调用此方法。。
我不知道;我不知道如何使用java加密这样的密码,因此该方法在RMI服务器上失败,出现了一个
MySQLSyntaxErrorException
,异常被发回,但您没有在RMI客户端上安装MySQL JDBC驱动程序,因此无法解析异常类,真正的错误消息丢失,当它被
ClassNotFoundException
替换时

您有几个选择:

  • 将MySQL JDBC驱动程序添加到RMI客户端的类路径。
    由于RMI客户端不需要MySQL访问,因此这似乎是错误的解决方案

  • 捕获RMI服务器上的异常,并抛出JDK内置异常,例如
    SQLSyntaxErrorException

    这个类将存在于RMI客户机上,因此您可以看到真正的错误是什么

  • 捕获RMI服务器上的异常,将错误消息记录在服务器上的日志文件中,然后引发一个完全通用的异常,例如
    RuntimeException(“添加用户时出错。请参阅服务器上的日志文件”)

    这将对客户端隐藏RMI服务器内部,这有助于保护服务器免受黑客攻击


java.rmi.unmarshaleException
!您是否使用RMI远程调用此方法?如果是这样的话,你不认为你应该在你的问题中提到这一点吗?是的……远程。对不起,弄错了。
java.rmi.UnmarshalException: Error unmarshaling return; nested exception is: 
    java.lang.ClassNotFoundException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException (no security manager: RMI class loader disabled)