2016-12-26 1 views
1

J'ai besoin que toute la sortie de la console du serveur apparaisse dans la sortie du client.RMI - Comment le client peut-il obtenir la sortie de la console du serveur?

J'appelle la méthode à distance sur la machine virtuelle distante, pendant l'exécution de la méthode à distance j'ai un rapport de log4j à la console (sur à distance).

Je veux obtenir/retourner tout rapport log4j à ma console côté client.

est-ce possible?

Répondre

1

Pas vraiment. Vous devez comprendre que le client et le serveur seulement communiquent via cette interface RMI que vous avez définie. Ensuite, les deux programmes s'exécutent dans leur propre JVM; donc stdout est quelque chose de complètement différent pour le client et le serveur. La même chose est vraie pour tout type d'infrastructure de journalisation.

Si vous voulez vraiment pousser les messages du serveur dans les journaux de vos clients; alors vous devez améliorer cette interface RMI, par exemple en permettant au serveur de renvoyer un List<String> qui contient tous les messages.

Mais s'il vous plaît noter: c'est une idée de conception plutôt mauvaise. Vous vraiment ne veulent pas que vos journaux client contiennent serveur détails. Ce qui se passe sur le serveur ... reste sur le serveur. Vos clients ne connaissent pas ces détails. Parce que vos utilisateurs pourraient trouver très utile lorsque vous planifiez attaquer votre serveur ... pour savoir ce que fait cette chose en détail!

Mise à jour: compte tenu de votre entrée, j'aller pour ce qui suit ::

  1. Assurez-vous que vous pouvez vraiment capturer toute l'omble imprimé à stdout/stderr sur votre serveur; par exemple en "remplaçant" stdout/stderr de sorte que tout ce qui y est imprimé va dans un fichier (voir here). Alternativement, si votre VM est Linux, vous pouvez vous assurer que les deux sont redirigés vers des fichiers. Au lieu d'essayer de capturer des choses au sein de votre service RMI, je voudrais une solution plus simple - en ajoutant une interface RMI qui vous permet de tirer ces fichiers stdout/stderr à partir de votre serveur. En d'autres termes: gardez vos appels RMI actuels comme ils sont; mais construit un autre service que vous pouvez utiliser pour récupérer des fichiers journaux complets à des moments arbitraires.
+0

Merci pour votre réponse rapide !! –

+0

Merci pour votre réponse rapide !! la raison pour laquelle je veux obtenir la sortie de la console distante est que j'effectue un test d'automatisation, le flux est que j'effectue un déploiement sur la VM distante, puis je veux exécuter un test d'automatisation sur la télécommande qui vérifie mon déploiement et retourne la console qui incluent ma vérification d'automatisation –

+0

je serai heureux! Merci bonne journée. –