2008-09-20 108 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,將寫入的數據傳遞給建立連接的客戶端。