Question

Comment puis-je écrire du code pour autoriser l'accès à une classe Java dans mon application Web à partir de la ligne de commande.

E.g. J'ai une classe java avec une interface en ligne de commande, qui peut exécuter du code dans le contexte de la Webapp, avec un accès à la base de données, etc. Je souhaite me connecter à la machine hébergeant mon application WARred dans tomcat et pouvoir interagir avec elle

Où devrais-je commencer à chercher?

Merci

Était-ce utile?

La solution

Souhaitez-vous simplement exécuter des fichiers de classe regroupés dans le fichier WAR ou souhaitez-vous ne pas interagir avec l'instance WAR en cours d'exécution? Si c’est le cas, le fichier WAR est simplement un fichier JAR normal et vous pouvez y exécuter des classes comme tout autre fichier JAR.

Si vous souhaitez interagir avec le fichier WAR en cours d'exécution, consultez JMX.

Tous les JDK actuels (au moins 1,5+) sont livrés avec JMX "gratuitement". Il est facile de créer de petites classes d’interface à utiliser comme commandes pour interagir avec votre WAR.

Ensuite, vous devez créer un programme de ligne de commande qui se connecte au fichier WAR via JMX ou vous pouvez utiliser un outil tel que JConsole (fourni avec le JDK, mais c’est une interface graphique) pour interagir avec votre instance. Il existe également d’autres clients JMX.

Si rien de tout cela n’attire, il y a toujours des services Web.

Autres conseils

Une suggestion: Votre classe d'interface de ligne de commande doit accepter un InputStream en tant qu'entrée et fournir un OutputStream (il ne peut pas coder en sortie la sortie vers System.out et l'entrée en System.in) dans laquelle sa sortie sera écrite. Ensuite, vous devrez écrire une classe de serveur qui écoute les connexions sur un certain port. Lorsqu’une connexion est établie, le serveur prend InputStream de la connexion et le transmet à la classe de ligne de commande, qui fournira à OutputStream les données écrites dans celle-ci, sera transmis au client qui a établi la connexion.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top