Notes de version de Sun GlassFish Enterprise Server v3

Le lancement d'un client d'application génère parfois l'erreur ClassNotFound pour la classe principale du client (problème 11181)

Description

Un problème se produit lorsque toutes les conditions suivantes sont vérifiées :

Les tentatives de lancement du client d'application échouent et génèrent l'erreur ci-après car un fichier généré sur le serveur est placé dans le mauvais répertoire de serveur et écrase l'autre fichier généré :


java.lang.ClassNotFoundException:(main-class-for-the-client)

Pour plus d'informations, reportez-vous à Issue report.

Solution

Donnez au client d'application un nom autre que myAppClient.jar . Notamment :

  1. Modifiez myApp/META-INF/application.xml de sorte que la déclaration du client soit <java>myClient.jar</java>. Notez que vous pouvez utiliser tout nom autre que myAppClient.jar.

  2. Remplacez le nom de répertoire myApp/myAppClient_jar par myApp/myClient_jar. Notez que le nom du sous-répertoire du client doit correspondre à celui de l'URI du client d'application dans le fichier application.xml, .jar étant remplacé par _jar.

  3. Déployez l'application :


    asadmin deploy --retrieve localdir myApp
    
  4. Exécutez le client d'application :


    appclient -client localdir/myAppClient.jar