我该如何编写一些代码来允许从命令行访问我的webapp中的Java类呢?
例如,我有一个带命令行界面的java类,它可以在webapp的上下文中运行代码,可以访问DB等。我想在tomcat中登录托管我的WARred应用程序的机器,并能够与其交互
我应该从哪里开始寻找呢?
谢谢
发布于 2008-09-20 18:25:44
您是只想运行恰好捆绑在WAR中的类文件,还是想与实际正在运行的WAR实例交互?如果是前者,那么WAR只是一个普通的Jar文件,您可以像执行任何其他Jar文件一样在该文件中执行类。
如果您想要与正在运行的WAR进行交互,那么您可能需要查看JMX。
所有当前的JDK(至少是1.5+)都“免费”提供了JMX。可以很容易地创建一些小接口类来用作与WAR交互的命令。
图形用户界面您需要创建一个通过THen连接到WAR的命令行程序,或者您可以使用像JConsole这样的工具(它随JDK提供,但它是一个图形用户界面)来与您的实例交互。此外,还有其他JMX客户端。
如果所有这些都不吸引人,那么总会有web服务。
发布于 2008-09-20 18:17:25
建议:命令行界面类应该接受InputStream作为它的输入,并提供它的输出将被写入的OutputStream (它不能将输出硬编码到System.out和输入到System.in)。然后,您必须编写一个服务器类来侦听某个端口上的连接。当建立连接时,服务器将从连接中获取InputStream,并将其提供给命令行类,后者将提供OutputStream,写入的数据将被传递到进行连接的客户机。
https://stackoverflow.com/questions/108838
复制相似问题