2018年4月17日 星期二

JBOSS AS 7.1 + Gradle Web Application config [Gradle , Spring MVC , Jdk1.7, Jboss AS 7.1,MSSQL]

1.建立gradle專案,將spring所需的一些dependencies 納入

目錄結構如下



2.連結DataSource
我是用sqlserver 2012,在JBOSS根目錄下找到module/com的路徑 
ex:C:\jboss-as-7.1.1.Final\modules\com
在這裡創建以下路徑microsoft\main\
在main資料夾裡放入sqljdbc4.jar 跟跟建立一個module.xml檔,如下圖。


index這個是run成功後會產生的,不用另外建立。

回到standalone.xml 做datasource設定


driver 對應driver name,module要對應稍後會設定的module name

找到<subsystem xmlns="urn:jboss:domain:ee:1.0">
修改為


module name 我猜測是要對應main之前module之後的路徑,\modules\com\microsoft\main 因此
是com.microsoft,之前試了其他都會找不到module,可能在規格書上有寫但我就沒細究了。

3.export war檔 並deploy

   gradle export war檔記得在gralde 裡加上 apply plugin: 'war'
 並加上這段
war {
    from 'src/webapp'
}

他才會把前端所需的東西一起export出來

最後把整包war檔丟到Jboss的deployment , ex: C:\jboss-as-7.1.1.Final\standalone\deployments

啟動server 看到console會有這段 JBAS018210: Registering web context: /accounting

後面加上spring mvc contorller的path 如  http://localhost:8180/accounting/xxcontroller/initPage

就可以把頁面顯示出來了!





 

JBoss 使用者設定

第一次進入Admin Console的時候會出現設定使用者的畫面


以下為新增使用者步驟
1.cmd指向bin目錄,鍵入指令add-user.bat
2.選擇a先設置Management User
3.Realm的名稱記得設置一樣,至於設置多個Realm的好處跟使用方法我還沒細究
4.輸入帳密 確認帳密後 確認即可
5.設置ApplicationUser 與前面步驟相同,Role設置輸入overlorduser,admin.sramp



輸入http://localhost:8180/console,會跳出輸入帳密的畫面,鍵入後就可以進入管理介面了


看一下console的port是 :10090 ,若有設置eclipse的jboss server,記得檢查這裡


要一致,否則會出現以下錯誤
JBREM000200: Remote connection failed: java.io.IOException: Received an invalid message length of 1195725856

如果帳密忘了,或是想重新設置就來這裡
jboss-as-7.1.1.Final\standalone\configuration
jboss-as-7.1.1.Final\domain\configuration
找兩個properties

mgmt-users.properties
application-users.properties

刪掉這段即可



在Eclipse內加入JBoss server [JBoss AS 7.1 , Eclipse Mars] Add JBoss server in Eclipse

除了將JBoss設置成service,對用Eclipse編譯的人將JBoss設置在IDE中會更方便。
若是第一次安裝,則會要先安裝 Jboss Tools

Selecting JBoss AS, WildFly, & EAP Server Tools will install JBoss Tools.


1.先新增JBoss Server版本,我是用7.1


直接Finish

2.檢查設置port
   在eclipse打開jboss server,查看port設定


3.輸入網址
因為我這裡設置兩台Jboss 所以${jboss.socket.binding.port-offset:100} 這裡是100,一般為0

所以我的port會是8180,輸入網址有通就是成功了



若出現了以下Exception
JBREM000200: Remote connection failed: java.io.IOException: Received an invalid message length of 1195725856

則檢查一下admin console的port是否一致,參考這一篇console設置














將JBoss 設定成windows service

將JBoss設定成windos服務可省下很多時間,以下是步驟,我自己有遇到開啟後馬上shutdown的情形,因此加上一個set java home的錯誤處理,但因為我本身就有設置好環境變數,所以為什麼會有這問題現在也不太清楚。



1.     編輯<JBOSS_ROOT>\binservice.bat (ex: C:\jboss-as-7.1.1.Final\bin)
            記得先備份原檔案

set SVCNAME=JBAS71SVC
set SVCDISP=JBoss Application Server 7.1
set SVCDESC=JBoss Application Server 7.1.1 GA/Platform: Windows x86
set NOPAUSE=Y


2.     JAVA_OPTS註解成 REM set JAVA_OPTS=


3.     取代run.batstandalone.bat

4.     取代run.logstandalone.log

5.     取代call shutdown -S < .s.lock >> shutdown.log 2>&1
            call jboss-cli.bat --connect --command=:shutdown >> shutdown.log 2>&1



6.     儲存service.bat

7.     在此目錄下cmd執行 service.bat install

8.     確認服務已註冊JBoss 




9.     確認<JBOSS_ROOT>\bin\standalone.log有寫入內容

參考網站:

https://coderanch.com/t/470826/application-servers/Start-JBoss-run-bat

https://developer.jboss.org/message/724488

https://developer.jboss.org/message/616629#616629#616629

https://developer.jboss.org/wiki/RunningJBossAS7AsAWindowsService