2014-10-02 80 views
1

我有一個EJB項目,其中包含一個Rest Web Service EJB。我將這個EJB.jar項目與一個WAR項目一起打包成一個EAR文件。那麼我的Rest Web Service的絕對路徑是什麼?在EAR文件中獲取REST資源路徑

+0

它取決於服務器名稱和部署ear/war文件的上下文。 – hooknc 2014-10-02 21:43:34

+0

@hooknc你能提供一個例子嗎?像localhost:8080 /?/ ?.我正在使用Glassfish 4. – chRyNaN 2014-10-02 21:45:30

+0

我沒有直接使用EAR文件。但是從我剛剛閱讀的內容來看,在您的EAR配置中設置了「context-root」。所以這裏是最好的網址,我可以給你http:// localhost:8080//。如果你確定你的上下文根目錄是空白或空的,那麼你的應用程序將被部署在根上下文中,並且你的url將會看起來接近:http:// localhost:8080/。 – hooknc 2014-10-02 22:51:25

回答

2

我的問題似乎是由於包含EJB REST Web服務的EJB JAR文件與WAR文件一起打包在EAR文件中。我讀過你可以在EJB JAR文件中使用JAX-RS,但是我並不知道這個JAR文件必須打包在動態Web項目的WEB-INF/lib文件夾中(WAR文件)。 According to this link,它不支持將JAX-RS EJB包含在EAR文件中。

+1

事實上,在包含在EAR中的單獨的ejb-jar文件中,JAX-RS註釋的企業bean不支持** **。 – 2014-10-03 09:42:20

+0

這仍然有效嗎?我面臨樣本問題,ejb和戰爭是分開部署的。 – kerner1000 2017-09-02 20:57:19

1

很高興你已經找到了答案。
從我的角度來看,將無狀態EJB bean公開爲restfull服務很快,但通常不是最好的方法。

通常,最好在Web模塊中創建restfull端點類,以封裝來自ejb服務的錯誤/異常。這也是做翻譯等的好地方。