2008-09-20 89 views
1

如何编写一些代码以允许从命令行访问我的webapp中的Java类。从命令行在java WAR的上下文中运行代码

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

我应该从哪里开始寻找?

感谢

回答

4

你只是想运行恰好被捆绑在WAR中的类文件,或者你想要与实际运行的WAR实例交互吗?如果是前者,那么WAR就是一个普通的Jar文件,并且您可以像其他任何其他Jar文件一样执行类。

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

所有当前JDK(至少1.5+)都带有JMX“免费”。创建一些小界面类很容易用作命令与WAR进行交互。

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

如果这些都没有吸引力,总是有Web服务。

+0

感谢那就是我正在寻找。那么JMX就可以胜任了。将探讨这一点。 Thks – macarthy 2008-09-20 18:35:02

0

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