我創建了一個具有一個Main類的java項目。所以我正在使用這個Main類運行這個Java Project 主要方法。但是現在我的需求發生了變化,我必須創建此項目的EJB,並且可部署的工件將是EAR。因此,仍然在尋找我將如何在Websphere中部署此EAR時運行此主要方法。在EJB上部署EAR運行main方法
只想總結一下,我想在EJB中執行EJB中的main方法,在WebSphere中部署EAR,搜索了很多嘗試一兩種方法但仍然在尋找一些好方法。
我創建了一個具有一個Main類的java項目。所以我正在使用這個Main類運行這個Java Project 主要方法。但是現在我的需求發生了變化,我必須創建此項目的EJB,並且可部署的工件將是EAR。因此,仍然在尋找我將如何在Websphere中部署此EAR時運行此主要方法。在EJB上部署EAR運行main方法
只想總結一下,我想在EJB中執行EJB中的main方法,在WebSphere中部署EAR,搜索了很多嘗試一兩種方法但仍然在尋找一些好方法。
據我所知,如果您使用的是Java EE 6,並且希望以預定方式調用EJB方法,那麼可以使用@Schedule
對其進行註釋來創建調度程序EJB,在其中注入EJB並使調度方法調用您注入的EJB方法。如果情況並非如此,並且您希望按需要調用它們,則需要像注入它們的Servlet那樣的客戶端。
從您的問題和意見來看,如果您完全瞭解EJB如何工作(即它們的生命週期,它們如何被調用等),我不完全清楚。如果您還沒有這樣做,我建議您閱讀Java EE教程,例如this one from Oracle。
一旦您瞭解事情的工作方式,have a look here並選擇最適合您的情況的方式。
通用於所有方法的是,您不能像以前那樣擁有主方法,但必須將其轉換爲您的EJB的普通公共方法,該方法將在啓動時調用。
由於您正在使用EAR,所以您還可以在EAR中將WAR包裝到您的EJB中,然後使用我的鏈接中描述的ContextListener
方法。
但現在也幾乎沒有必要有一個EAR。您可以將所有內容都包裝在WAR中。看到這裏:Why use an ear instead of a war?
你不能那樣做。這不是EJB的工作原理。 –
@Elliott Frisch,所以我會做的是有任何替代方式 – Tenacious
你可以嘗試使用[''ServletContextListener'](http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletContextListener html的);這與Servlet(而不是EJB)一樣。 –