2011-11-29 61 views
1

我有兩個java項目。從project1我必須調用project2的方法。這兩個項目都是使用Java核心概念開發的,並且單獨運行。據我所知,在這種情況下,我將不得不使用任何遠程調用方法的技術(我是否正確?),如RMI,WebServices,JMS等。我必須經常從project1調用project2的方法。什麼可能是實現這一目標的最佳方法。如何遠程調用方法?

謝謝

回答

0

您的項目是否部署到應用程序服務器或servlet容器?

您可以使用Web服務來公開項目2中的方法。這將基於標準,並且在將來也允許非Java項目在需要時訪問您的服務。

如果它適合您,請嘗試以異步模式實現它以獲得更好的性能。 Web服務也允許異步調用模式。但是,爲此,您的Project 1還需要公開回調方法。

編輯: 我在Java 6中遇到過這種情況,您也可以在servlet容器之外部署web服務。下面的鏈接可以幫助。

Standalone web services in Java SE 6

但是不知道這是否可以在生產環境中使用。

+0

我的項目沒有部署在任何容器/服務器上,它們運行在jvm上。如果我讓project2成爲web服務,那麼我將不得不將它部署在web容器中? – sjain

0

RMI用於客戶端 - 服務器體系結構。將有一個服務器程序,將實現您的接口擴展遠程,它將定義或調用服務器上的其他方法,它會綁定一個對象。然後你將需要一個客戶端程序來查找該對象並使用該對象,它將調用服務器上的方法。

所以,如果你的項目是作爲客戶端服務器運行,那麼你可以試試這個東西。

你正在談論的下一件事是Web服務。 WebServices通過特定的協議提供一些在服務器上通過網絡訪問客戶端的代碼。在此代碼將在服務器上運行,並且您將使用Web服務從客戶端訪問它。

現在由您來決定您的項目遵循何種架構,哪種方法更適合您的場景。