簡體   English   中英

從命令行在java WAR的上下文中運行代碼

[英]Running code in the context of a java WAR from the command line

我將如何編寫一些代碼以允許從命令行訪問我的webapp中的Java類。

例如,我有一個帶有命令行界面的java類,它可以在webapp的上下文中運行代碼,可以訪問數據庫等。我想在tomcat中登錄托管我的WARred應用程序的機器並能夠與它交互

我該在哪里開始尋找?

謝謝

您是否只想運行恰好捆綁在WAR中的類文件,或者您是否希望與實際運行的WAR實例進行交互? 如果是前者,則WAR只是一個普通的Jar文件,您可以像其他任何Jar文件一樣執行該類。

如果要與正在運行的WAR進行交互,那么您可能需要查看JMX。

所有當前的JDK(至少1.5+)都附帶JMX“免費”。 創建很少的接口類很容易用作與WAR交互的命令。

那么您需要創建一個通過JMX連接到WAR的命令行程序,或者您可以使用JConsole(它隨JDK一起提供,但它是一個GUI)等工具與您的實例進行交互。 還有其他JMX客戶端。

如果這些都不具吸引力,那么總會有Web服務。

建議:您的命令行接口類應該接受一個I​​nputStream作為它的輸入,並提供一個OutputStream(它不能硬編碼輸出到System.out並輸入到System.in),它的輸出將被寫入。 然后,您將必須編寫一個偵聽某個端口上的連接的服務器類。 當建立連接時,服務器將從連接中獲取InputStream,並將其提供給命令行類,該類將提供OutputStream,寫入的數據將傳遞給建立連接的客戶端。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM