繁体   English   中英

从命令行在java WAR的上下文中运行代码

[英]Running code in the context of a java WAR from the command line

我将如何编写一些代码以允许从命令行访问我的webapp中的Java类。

例如,我有一个带有命令行界面的java类,它可以在webapp的上下文中运行代码,可以访问数据库等。我想在tomcat中登录托管我的WARred应用程序的机器并能够与它交互

我该在哪里开始寻找?

谢谢

您是否只想运行恰好捆绑在WAR中的类文件,或者您是否希望与实际运行的WAR实例进行交互? 如果是前者,则WAR只是一个普通的Jar文件,您可以像其他任何Jar文件一样执行该类。

如果要与正在运行的WAR进行交互,那么您可能需要查看JMX。

所有当前的JDK(至少1.5+)都附带JMX“免费”。 创建很少的接口类很容易用作与WAR交互的命令。

那么您需要创建一个通过JMX连接到WAR的命令行程序,或者您可以使用JConsole(它随JDK一起提供,但它是一个GUI)等工具与您的实例进行交互。 还有其他JMX客户端。

如果这些都不具吸引力,那么总会有Web服务。

建议:您的命令行接口类应该接受一个I​​nputStream作为它的输入,并提供一个OutputStream(它不能硬编码输出到System.out并输入到System.in),它的输出将被写入。 然后,您将必须编写一个侦听某个端口上的连接的服务器类。 当建立连接时,服务器将从连接中获取InputStream,并将其提供给命令行类,该类将提供OutputStream,写入的数据将传递给建立连接的客户端。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM