gpt4 book ai didi

Java RMI 客户端遇到 ClassCastException

转载 作者:行者123 更新时间:2023-11-29 04:38:20 25 4
gpt4 key购买 nike

我在将 RMI 客户端连接到服务器时遇到问题。所以我有这些类/接口(interface):

    package application;

import java.sql.ResultSet;

public interface InterfaceRMI {

public void insererEtudiant(String requete);
public void supprimerEtudiant(String requete);
public ResultSet selectionnerEtudiant(String requete);
}

服务器类:

    package application;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class ServeurMySQL extends UnicastRemoteObject implements InterfaceRMI {

public int port;

public ServeurMySQL(int port) throws RemoteException {
this.port = port;
}


@Override
public void insererEtudiant(String requete) {
// Implementation for insertion
}

@Override
public void supprimerEtudiant(String requete) {
// Implementation for delete
}

@Override
public ResultSet selectionnerEtudiant(String requete) {
// Implementation for selection
}
}

连接测试类:

    package application;

import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

public class test {

public static void main(String[] args) {
try {
Registry r = LocateRegistry.getRegistry(1098);

InterfaceRMI serveur = (InterfaceRMI) (r.lookup("serveurMySQL"));

} catch (Exception e) {
e.printStackTrace();
}
}
}

当我将行 InterfaceRMI serveur = (InterfaceRMI) (r.lookup("serveurMySQL")); 替换为 r.lookup("serveurMySQL"); 我没有得到异常,我知道连接有效,问题只是类型转换。但我不知道如何解决。

异常如下:

    java.lang.ClassCastException: com.sun.proxy.$Proxy0 cannot be cast to application.InterfaceRMI
at application.test.main(test.java:13)

P.S:RMI 服务器启动没有任何问题。

最佳答案

首先:

 public interface InterfaceRMI 

必须是

 public interface InterfaceRMI extends Remote

第二个:

InterfaceRMI 中的每个方法都必须声明 throws RemoteException

关于Java RMI 客户端遇到 ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40310135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com