[英]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服务。
建议:您的命令行接口类应该接受一个InputStream作为它的输入,并提供一个OutputStream(它不能硬编码输出到System.out并输入到System.in),它的输出将被写入。 然后,您将必须编写一个侦听某个端口上的连接的服务器类。 当建立连接时,服务器将从连接中获取InputStream,并将其提供给命令行类,该类将提供OutputStream,写入的数据将传递给建立连接的客户端。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.