2009-08-12 16 views
3

Comment configurer plusieurs points d'entrée dans un fichier client d'application? J'utilise le serveur d'application Glassfish. Je peux récupérer le client à l'aidePoint d'entrée multiple (mainclass) pour le client d'application jar

asadmin get-client-stubs --appname APPLICATION_NAME . 

je peux actuellement exécuter le MainClass par défaut que je l'ai indiqué dans le MANIFEST.MF. Cependant, je veux être en mesure de spécifier une autre mainclass à l'exécution.

-à-dire

appclient -client MYJAR.jar -mainclass com.mystuff.Main1 
and 
appclient -client MYJAR.jar -mainclass com.mystuff.Main2 

Les deux Principale1 et Main2 ont des points d'entrée "public static void main".

Si je spécifie un MainClass qui n'est pas MANIFEST.MF, je reçois l'exception suivante:

Exception in thread "main" java.lang.RuntimeException: java.lang.IllegalArgumentException: Could not locate an embedded app client matching the main class name 

Ai-je besoin de faire des changements pour avoir les références appclient autres mainclasses?

Répondre

1

http://forums.java.net/jive/thread.jspa?threadID=65549&tstart=0 < - Je Republiée ici la même question et que quelqu'un a donné la réponse ...

Salut. Le conteneur client de l'application GlassFish utilise l'option -mainclass pour distinguer plusieurs clients empaquetés dans le même fichier EAR. Ainsi, au moment du lancement, l'utilisateur peut choisir lequel de ces plusieurs clients a été assemblé pour le lancement. Comme vous l'avez découvert, il ne permet pas à l'utilisateur de remplacer l'intention du développeur quant à la classe principale à exécuter dans un client donné.

Vous pouvez faire ce que vous voulez en utilisant la syntaxe alternative appclient disponible en version 3:

http://docs.sun.com/app/docs/doc/820-7701/appclient-1m?a=view

Pour v2, vous pouvez certainement écrire votre seule classe principale d'accepter un argument qui spécifie une classe à exécuter et chargez ensuite cette classe dynamiquement et appelez sa méthode principale.

-Tim