1

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

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

我应该从哪里开始寻找?

谢谢

4

2 回答 2

4

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

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

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

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

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

于 2008-09-20T18:25:43.860 回答
0

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

于 2008-09-20T18:17:24.707 回答