部署在WildFly上的EJB客戶端,呼叫另一個WildFly上的EJB服務的過程詳解
本文是前一篇博文的繼續,應用的場景如下:
EJB服務開發完畢後,以ear或jar的方式部署在一個WildFly伺服器上;
EJB客戶端開發(詳解前一篇博文)完畢後,以war的方式(也可以是另外一個ear)部署在另一個WildFly伺服器上。
對於部署EJB服務的WildFly伺服器,除了前文介紹的新增必要的使用者之外,無需任何額外的設定。
對於部署EJB客戶端的WildFly伺服器,還需要進行如下配置:
1. 將有效使用者的密碼進行base64加密
可以通過通用工具將密碼的明文轉換為密文
2. 建立安全域以傳送使用者認證資訊到EJB伺服器
編輯standlaone-full.xml如下:
|
其中的secret值就是EJB伺服器設定的密碼test的base64密文
3. 建立埠繫結
編輯standlaone-full.xml如下:
<socket-binding-groupname="standard-sockets"default-interface="public"port-offset="${jboss.socket.binding.port-offset:0}"> ... <outbound-socket-bindingname="remote-ejb"> <remote-destination </outbound-socket-binding> </socket-binding-group> |
其中的host就是EJB伺服器的IP,port就是EJB伺服器的埠(預設為8080)
4. 建立遠端連線
編輯standlaone-full.xml如下:
|
其中的username就是EJB伺服器設定的有效使用者名稱
5. EJB客戶端的打包及jboss-ejb-client.xml檔案
jboss-ejb-client.xml檔案內容如下:
<jboss-ejb-clientxmlns="urn:jboss:ejb-client:1.2"> <client-context> <ejb-receivers> <remoting-ejb-receiveroutbound-connection-ref="remote-ejb-connection"/> </ejb-receivers> </client-context> </jboss-ejb-client> |
對於EAR打包方式,jboss-ejb-client.xml檔案位於META-INF/jboss-ejb-client.xml。
對於WAR打包方式,jboss-ejb-client.xml檔案位於WEB-INF/jboss-ejb-client.xml。
至此完成所有配置,重啟 EJB客戶端所在的WildFly伺服器,即可看到EJB呼叫的日誌資訊。
參考文獻:
https://docs.jboss.org/author/display/WFLY10/EJB+invocations+from+a+remote+server+instance