Skip to main content

Posts

Showing posts from September, 2012

JEAP 6&5 - 確定你的UDP環境

到一個客戶那裡,發現它cluster 怎樣都裝不起來,
因為我不是OS 的工程師,也不確定他們的網管是怎麼限制Policy的,
測試了一下,才發現是他們的UDP  這個Protocol 不work。
(因為JBoss Default Cluster 的機制是靠 UDP傳送的)。

要如何測試?
請先下載這個JAR檔,如果你是用EAP 5 , 那你其實可以在$JBOSS_HOME/server/production/lib下找到
(如果你是下載的,請記得把檔案的附檔名從.zip 改為.jar)

確定有這個jgroups.jar檔在你的執行目錄下之後
執行以下這段啟動接收者

java -cp jgroups.jar org.jgroups.tests.McastReceiverTest -mcast_addr 224.10.10.10 -port 5555 在另一個視窗,同一個路徑下執行發送者。
java -cp jgroups.jar org.jgroups.tests.McastSenderTest -mcast_addr 224.10.10.10 -port 5555 確定之後,在發送者打幾個字,接收者應該就可以收到了。

如果不行,因為原因有很多種,請洽網管或是管理OS主機人員研究拉!

JEAP 6 - 建立Window Service

觀眾要求第三彈:

最近換了一台新電腦,東西都還放在舊電腦上,搬動上有點麻煩~
可能更新速度沒這麼快,大家見諒。

給大家偷看一下我的新小銀~可愛啊~!!!!


要多拍幾張,因為小姐粗魯的個性,很快就會讓它變成髒小銀了!哈哈
==================================================
首先,要先說明,JBoss EAP 6 的官方認證OS Windows 它只有2008, 所以如果不能用,
也不要氣餒,我這裡會針對 2008 與 2003 說明。

Windows 2008

官方有支援,所以當然就是去官方下載可以用的套件拉!
請到紅帽的官網,到Customer Portal 下的Middleware 區下載。

選擇JBoss EAP 6 的版本 (Application Platform),

下載Windows 2008 的Native Utilities for Windows Server 2008.
如果你不是x64 的版本請選下面那個。






下載完畢後,請解壓縮到原先安裝JBoss EAP 6 的目錄,


選擇覆蓋。


這裡下載service.bat,把service.bat檔案放在%JBOSS_HOME%/modules/native/sbin 下,設定好你的 JAVA_HOME.


執行 service.bat install 即可




確定有個JBoss EAP 6 的service 存在於服務中,
啟動,確定可以正常啓動JBoss. 

這樣就完成 Windows 2008 的安裝拉!

Windows 2003
心裡的OS: 為了要找到2003 的這個古董iso 檔案,真是費盡我千辛萬苦,裝只要5分鐘,可是找這個卻花了我3天......請不要再問我古董的問題了,我不是古董商阿... 

跟 2008 R2 沒啥兩樣,只是要下載的檔案名稱不同,(不要再問我win xxxxx ) JBoss EAP 6 只支援 windows 2008 喔,其實只要你確定你的window 是不是x64 裝對native component 一般來說都可以用的噢!

下載正確的檔案, Windows Server 2008 i686

一樣解壓縮到JBoss EAP 6 的目錄,

這裡下載service.bat,把service.bat檔案放在%JBOSS_H…

JEAP 6 - Web Service 安全性設定(登入)

當然開發完Web Service 也不能都不做一些安全性的防護吧?
Web Service 主要的安全性也不外乎兩種,加密跟使用者登入的身份認證。
這篇是之前Web Service 的延伸,可以參考先前建立Web Service 的方式。
但我認為Web Service 其實跟EJB 的Stateless Session Bean 結合的最好,
以後有機會再寫囉!

====================================================

這次的WSDL並沒有做加密或是保護,主要是Service 的認證。
要做認證,要先把Security Domain 建立起來,要先建立使用者的properties 的檔案。
所以請到之前WAR 檔下的Source 位置,建立兩個properties 檔案,一個放使用者與密碼,一個放使用者與使用者身份的對應檔。

A. jbossws-role.properties (使用者與使用者身份的對應檔)
admin=wsuser B. jbossws-user.properties (使用者與密碼的對應檔)
admin=adminpwd JBoss EAP 6 現在設定Security Domain也變得"灰熊"簡單拉!老樣子,一樣是兩種選擇

A. XML 設定,security-domains 之下
B. 從Console上設定,
1. 到Profile 下,選擇左邊選單的Security的Security Domains.

2. 按下Add, 新增一個JBoss Web Service 專用的Security Domain. Cache Type 請選擇Default.

3. 建立完成後,到剛剛建立的JBossWS上按View進入,

4. 新增一個UserRoles的Login模組UsersRoles. Flag 選required. (必要的)

5. 到下方的Detail 指定這個Security Domains 要去讀取剛建的properties 的使用檔案。


為了讓大家可讀到這個Security Domain, 所以請建立jboss-web.xml,讓其他程式可以很簡單的找到它。 在 WEB-INF 下建立 jboss-web.xml



接下來就要把Security Domain …

JEAP 6 - 建立Web Service

這我之前在電子報有寫過,但是因為不知道丟到哪裡去了,
而且有人問,所以,我還是要再打一次,希望是最後一次了... 哭..

在這裡,先要說清楚,JBoss 本身就有提供Web Service 的功能,JBossws, 可是我看到很多人在寫程式的時候還是會掛Axis 在裡面,有種畫蛇添足的感覺,了解Axis 其實還滿強大的,可以支援許多Protocol, 與建立Bean 的方式,但是大多數的人連用都沒用到。
所以如果你的Web Service 很簡單,乾脆考慮使用JBossws 就夠了。

而且JBossws 都符合Web Service 的JSR. JSR-244, JSR-181, JSR-109, JSR-101.


首先,要先建立一個Project, 選取Web Dynamic Project,

然後取名為hellows,確定後,按下Finished.


開始寫第一個Web Service, 不可免俗的,當然一定要寫個Hello World
(誰來告訴我,為啥一定要是Hello World?) 在左邊選單的hellows上,按下滑鼠右鍵,選擇建立一個Class.


Web Service 其實說穿了也沒啥,所以我們就先簡單的建立一個POJO. 

在上面加上一個Method, 讓Hello World 可以說聲Hello. 

加上Web Service 的Annotation 即可。
發佈上Server, 就可以看到這個Web Service 的相關資訊
到http://localhost:8080/hellows/HelloWorld?wsdl 下,就可以看到這個Web Service 提供的wsdl, 可以將這個提供給其他連結的Client 建置它的處理程式。

以上,Web Service 就完成了。 可是要如何確認這個Web Service 是否可以正常Work?
那就來寫個Client 去連結呼叫就好啦!

首先,我的好習慣就是會幫每個獨立的程式都建立一個Project, 這次就叫做hellowsClient.


接下來的步驟很簡單,如果沒有開發工具,那我可能會哭出來,還好現在的工具都很方便了!

Web Service 的 呼叫方式,基本上有3種,
1. Stub
2. 動態的Proxy (Dynamic Proxy)
3. 動態呼叫介面 (Dynamic Invo…