最近學習EJB的基本使用,在搭建基本配置上遇下了不少坑。Google/Baidu搜索下的基本都是使用Eclipse + JBoss,使用Intellij的配置的也是使用JBoss7。因此記錄下簡單的配置過程,以供學習參考使用。
邏輯服務搭建:
1. 所需文件
- wildly 11.0 Filnal 即JBoss8+ http://wildfly.org/downloads/
- javax.ejb-api-3.2.jar EJB的支持 http://mvnrepository.com/artifact/javax.ejb/javax.ejb-api
- tomcat
后端構建
1. 創(chuàng)建項目
由于wildfly使用war部署,創(chuàng)建普通的web項目即可。(創(chuàng)建時加上EJB也是可以的,在功能欄會有EJB管理模塊)

將EJB所需要的支持庫加入(ProjectStructure->Library)

2. 編寫SessionBean

3. 啟動配置
我們使用JBoss運行項目,將原有的Tomcat配置刪除,選擇創(chuàng)建JBoss Server / Local

此時我們需要將artifacts放置到JBoss上進行以部署。直接點擊Fix即可

4. 運行
以下輸出標記Bean的路徑
java:global/Hello_war_exploded/HelloEJB!daoservice.HelloService
java:app/Hello_war_exploded/HelloEJB!daoservice.HelloService
java:module/HelloEJB!daoservice.HelloService
java:jboss/exported/Hello_war_exploded/HelloEJB!daoservice.HelloService
java:global/Hello_war_exploded/HelloEJB
java:app/Hello_war_exploded/HelloEJB
java:module/HelloEJB

在瀏覽器中輸入 http://localhost:8080/ 可以看到wildfly界面

此時JBoss即運行成功了
前端搭建
項目創(chuàng)建
前端使用Servlet + EJB,創(chuàng)建過程同上

項目配置
JNDI Remote Client 需要 jboss-client.jar , 此jar包在{$WILDFLY_HOME}/bin/client下

將上面的 javax.ejb-api-3.2.jar與jboss-client.jar添加到HelloUI的library中(要使用ProjectStructure加入庫中或者右鍵:Add As Library)
Servlet編寫
將Hello工程中的EJB接口拷貝至HelloUI工程。(最好包名不要修改)
jndiPath 編寫: 運行JBoss后的輸出中含有app:/----
參考 http://share.zhbor.com/article/18176.html
jndiPath = "ejb:" +
appName + "/" +
moduleName + "/" + /*服務器上.war包或.jar包的名字*/
distinctName + "/" +
beanName + "!" + viewClassName + "?stateful" /*Bean Name*/

EJB配置文件編寫
在 src 文件夾下創(chuàng)建 jboss-ejb-client.properties
endpoint.name=client-endpoint
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=localhost
remote.connection.default.port=8080
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
remote.connection.default.username=JBOSS賬號
remote.connection.default.password=JBOSS密碼
此處,port 是 8080, 如果是 JBoss7 則為4447
至于Jboss賬號密碼設置:
使用命令行進入wildfly 安裝目錄下的 bin 文件夾
執(zhí)行 ./add-user.sh (Win下是.bat)
運行
注意:tomcat 默認端口也是8080,我將其改成了8888
