我有一个网络应用程序
- 由tomcat 7.1托管
- 使用 spring 3.1 mvc 框架。
我想为 tomcat 控制台窗口实现一个命令行功能,以读取命令并执行一些操作或将一些信息输出到控制台。我该怎么做?
示例:键入“ show memory ”,然后将 JVM 内存信息显示到控制台。
我能做到System.in
吗?会有任何线程安全的问题吗?
如果您在 Tomcat 中作为 Web 应用程序运行,您将无法访问 System.in 或控制台:Tomcat 通常在后台启动,与所有控制台分离。而且它不会为您提供对控制台的有意义的访问权限。
可行的方法是提供@rlegendi 在评论中建议的 REST API(任何其他 API 也可以)并编写一个单独的命令行应用程序来与您的 API 交互。或者使用“管理器”接口——如果我从古代没记错的话,tomcat 的管理器应用程序也有一些从外部脚本访问的可用方法。
确保对这些调用进行身份验证 - 至少验证它们来自本地主机,以便您在 API 中模拟某种安全性。不要相信来自世界各地的随机电话。