Maison > Java > javaDidacticiel > le corps du texte

Comment résoudre \'java.rmi.ServerException : RemoteException s'est produite dans le thread du serveur (ClassNotFoundException)\' dans Java RMI ?

Mary-Kate Olsen
Libérer: 2024-11-25 00:38:10
original
809 Les gens l'ont consulté

How to Solve

Dépannage "java.rmi.ServerException : RemoteException s'est produite dans le thread du serveur (ClassNotFoundException)"

L'exception "ClassNotFoundException" rencontrée lors de la tentative de démarrage un serveur RMI provient de l'un des nombreux scénarios possibles liés à une classe manquante ou inaccessible définitions.

Causes et solutions :

1. Exportation :

  • Assurez-vous que la commande 'rmic' a été exécutée pour générer les classes stub et squelette requises.
  • Si 'rmic' n'est pas réalisable, suivez les étapes alternatives décrit dans le Javadoc pour UnicastRemoteObject pour rendre son utilisation inutile.

2. Liaison :

  • Le registre doit avoir accès à la classe stub, à l'interface distante et à toutes les dépendances sur son chemin de classe.
  • Démarrez le registre avec un chemin de classe approprié qui inclut le JAR ou répertoires pertinents.
  • Vous pouvez également démarrer le registre dans la JVM du serveur à l'aide de LocateRegistry.createRegistry().

3. Recherche :

  • Le client doit également avoir accès à la classe stub, à l'interface distante et aux dépendances sur son chemin de classe.
  • Assurez-vous que le chemin de classe du client est correctement configuré.

4. Appel de méthodes distantes :

  • Le serveur et le client doivent avoir les classes nécessaires sur leurs chemins de classe respectifs, notamment :

    • Classes passées en arguments aux méthodes distantes.
    • Classes qui représentent le type de retour des méthodes distantes.
    • Classes qui représentent les types d'exceptions levées par des méthodes à distance.

Solutions supplémentaires :

  • Utiliser des stubs dynamiques :

    • Comme indiqué dans le Javadoc pour UnicastRemoteObject.
    • Notez que les dépendances peuvent encore devoir être respectées pour l'interface distante ou d'autres classes associées.
  • Assurer les versions de classe compatibles :

    • Le registre RMI, le serveur et le client doivent utiliser des versions compatibles du même kit de développement Java (JDK) peut accéder aux classes nécessaires.
    Envisagez d'utiliser un chargeur de classes personnalisé pour charger des classes à partir de répertoires spécifiques ou JAR.
  • En comprenant les causes potentielles et en appliquant les solutions appropriées, vous pouvez résoudre le problème « ClassNotFoundException » et démarrer avec succès votre serveur RMI.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal