JSF Expression Language 搭配 JSF 標籤來使用,是用來存取資料物件的一個簡易語言。JSF EL是以#開始,將變數或運算式放置在 { 與 } 之間,例如:#{someBeanName}


變數名稱可以是faces-config.xml中定義的名稱,如果是Bean的話,可以透過使用 '.' 運算子來存取它的屬性,例如:

...
<f:view>
          <h:outputText value="#{userBean.name}"/>
</f:view>
...

 

在JSF標籤的屬性上," 與 " (或'與')之間如果含有EL,則會加以運算,您也可以這麼使用它:

...
<f:view>
            名稱, 年齡:<h:outputText value="#{userBean.name}, #{userBean.age}"/>
</f:view>
...

一個執行的結果可能是這樣顯示的: 名稱, 年齡:Justin, 29

 

EL的變數名也可以程式執行過程中所宣告的名稱,或是JSF EL預設的隱含物件,例如下面的程式使用param隱含物件來取得使用者輸入的參數:

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@page contentType="text/html; charset=utf-8"%>
    
<html>
    <head>
        <title></title>
    </head>
    <body>
        <f:view>
                  <b> 您好, <h:outputText value="#{param.name}"/> </b>
        </f:view>
    </body>
</html>

 

param是JSF EL預設的隱含物件變數,它代表request所有參數的集合,實際是一個java.util.Map型態物件,JSF所提供的隱含物件,大致上對應於 JSP 隱含物件,不過JSF隱含物件移除了pageScope與pageContext,而增加了facesContext與view,它們分別對應於 javax.faces.context.FacesContext與javax.faces.component.UIViewRoot。
對於Map型態物件,我們可以使用 '.' 運算子指定key值來取出對應的value,也可以使用 [ 與 ] 來指定,例如:

...
<f:view>
          <b> 您好, <h:outputText value="#{param['name']}"/> </b>
</f:view>
...
 

在 [ 與 ] 之間,也可以放置其它的變數值,例如:


...
 <f:view>
            <h:outputText value="#{someBean.someMap[user.name]}"/>
 </f:view>
...

 

如果變數是List型態或陣列的話,則可以在 [] 中指定索引,例如:

....
<f:view>
           <h:outputText value="#{someBean.someList[0]}"/>
           <h:outputText value="#{someBean.someArray[1]}"/>
           <h:outputText value="#{someBean.someListOrArray[user.age]}"/>  
</f:view>
....

 

您也可以指定字面常數,對於true、false、字串、數字,JSF EL會嘗試進行轉換,例如:

....
<h:outputText value="#{true}"/>
....
<h:outputText value="#{'This is a test'}"/>
....

 

如果要輸出字串,必須以單引號 ' 或雙引數 " 括住,如此才不會被認為是變數名稱。在宣告變數名稱時,要留意不可與JSF的保留字或關鍵字同名,例如不可取以下這些名稱:
 true false null div mod and or not eq ne lt gt le ge instanceof empty

 

使用EL,您可以直接實行一些算術運算、邏輯運算與關係運算,其使用就如同在一般常見的程式語言中之運算。

算術運算子有:加法 (+), 減法 (-), 乘法 (*), 除法 (/ or div) 與餘除 (% or mod) 。下面是算術運算的一些例子:

運算式

結果

#{1}

1

#{1 + 2}

3

#{1.2 + 2.3}

3.5

#{1.2E4 + 1.4}

12001.4

#{-4 - 2}

-6

#{21 * 2}

42

#{3/4}

0.75

#{3 div 4}

0.75,除法

#{3/0}

Infinity

#{10%4}

2

#{10 mod 4}

2,也是餘除

#{(1==2) ? 3 : 4}

4

 

如同在Java語法一樣 ( expression ? result1 : result2)是個三元運算,expression為true顯示result1,false顯示result2。

邏輯運算有:and(或&&)、or(或!!)、not(或!)。一些例子為:

運算式

結果

#{true and false}

false

#{true or false}

true

#{not true}

false

 

關係運算有:小於Less-than (< or lt)、大於Greater-than (> or gt)、小於或等於Less-than-or-equal (<= or le)、大於或等於Greater-than-or-equal (>= or ge)、等於Equal (== or eq)、不等於Not Equal (!= or ne),由英文名稱可以得到lt、gt等運算子之縮寫詞,以下是Tomcat的一些例子:

運算式

結果

#{1 < 2}

true

#{1 lt 2}

true

#{1 > (4/2)}

false

#{1 > (4/2)}

false

#{4.0 >= 3}

true

#{4.0 ge 3}

true

#{4 <= 3}

false

#{4 le 3}

false

#{100.0 == 100}

true

#{100.0 eq 100}

true

#{(10*10) != 100}

false

#{(10*10) ne 100}

false

 

 

左邊是運算子的使用方式,右邊的是運算結果,關係運算也可以用來比較字元或字串,按字典順序來決定比較結果,例如:

運算式

結果

#{'a' < 'b'}

true

#{'hip' > 'hit'}

false

#{'4' > 3}

true

 

EL運算子的執行優先順序與Java運算子對應,如果有疑慮的話,也可以使用括號()來自行決定先後順序。

 

資料來源:http://openhome.cc/Gossip/JSF/JSFExpressionLanguage.htm

文章標籤

MIS 發表在 痞客邦 留言(0) 人氣()

相關套件及安裝順序如下:

1. Apache:httpd-2.2.25-win32-x86-openssl-0.9.8y
2. Microsoft .NET Framework 4 (獨立安裝程式) : dotNetFx40_Full_x86_x64.exe
3. Microsoft Visual C++ 2010 SP1 可轉散發套件 (x86) :vcredist_x86.exe
4. MySQL:MySQL Installer 5.6.16: mysql-installer-community-5.6.16.0.msi
5. PHP VC9 x86 Thread Safe (2014-Mar-06 00:29:49):php-5.4.26-Win32-VC9-x86.zip

 

Setup 01: 安裝 Apache:httpd-2.2.25-win32-x86-openssl-0.9.8y 最簡單,都下一步就可以順利安裝完成,只有預設安裝路徑建議修改為 C:\AppServ\Apache2.2,完成後輸入 http://localhost 應該有下面的畫面

 apache2.2-openssl-installok.png  

接下來安裝 MySQL 之前,需先裝好 Microsoft .NET Framework 4 (獨立安裝程式) : dotNetFx40_Full_x86_x64.exe、以及Microsoft Visual C++ 2010 SP1 可轉散發套件 (x86) :vcredist_x86.exe,又因為 MySQL 被 Oracle 併購了,所以需先申請一個 Oracle 的帳號才能下載,真是麻煩....

Setup 02: 開始安裝 MySQL,選擇 Install MySQL Products

  mysql_welcome.png  

Setup 03: 可以勾選 Skip the check for updates

mysql_online_check.png

 

Setup 04: 預設存放 MySQL 的路徑設在 C:\AppServ\MySQL\ ;資料庫檔案放在:C:\AppServ\MySQL\MySQL Server 5.6\

mysql_type.png

Setup 05: Workbench CE & Connector 會由線上下載後再安裝

mysql_installing.png 

Setup 06: 安裝完後,作初始設定

MySql-configure-1.png  

MySql-configure-2.png MySql-configure-3.png MySql-configure-4.png MySql-configure-overview.png

Setup 07: 作完初始設定後,就可以用 MySQL Workbench 來管理 MySQL

mysql_workbench.png  

 

Setup 08: 安裝 PHP

a) 將 PHP VC9 x86 Thread Safe (2014-Mar-06 00:29:49):php-5.4.26-Win32-VC9-x86.zip 解壓並放在 C:\AppServ\php5,並將目錄下的 php.ini-production 更名為 php.ini ,

b) 修改 php.ini 的內容如下:(參考:http://www.php.net/manual/de/install.windows.manual.php)

; Directory in which the loadable extensions (modules) reside.
extension_dir = "C:/AppServ/php5/ext"

; Windows Extensions
; 啟動幾個常用的 DLL

extension=php_curl.dll
extension=php_gd2.dll
extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_exif.dll      ; Must be after mbstring as it depends on it
extension=php_mysql.dll
extension=php_mysqli.dll

session.save_path = "C:/AppServ/php_session_temp"

 

 Setup 09: 修改 C:\AppServ\Apache2.2\conf\httpd.conf (參考:http://www.php.net/manual/de/install.windows.apache2.php)

在LoadModule系列最後加上一行: (改成實際PHP安裝路徑)
PHPIniDir "C:/AppServ/php5/"
LoadModule php5_module "C:/AppServ/php5/php5apache2_2.dll"

在<IfModule mime_module>區塊中加上一行:
AddHandler application/x-httpd-php .php

在<IfModule dir_module>區塊中修改DirectoryIndex此行:
DirectoryIndex index.php index.html index.htm

 

Setup 10: 測試 PHP

在Apache設定的DocumentRoot中新增一個php檔案(預設路徑: C:\AppServ\Apache2.2\htdocs)
例如: phpinfo.php, 內容為: (可用phpinfo()函式)

在瀏覽器中測試 (需重新啟動Apache或重開機)
http://127.0.0.1/phpinfo.php

 apache_php_test_ok.png  

 

 

 

參考:

http://blog.roodo.com/esabear/archives/15069653.html

http://shaurong.blogspot.tw/2013/10/apache-php-mysql-on-win7.html

 

MIS 發表在 痞客邦 留言(3) 人氣()

環境:

JBoss: 7.1.1.Final 下載地址: http://www.jboss.org/jbossas/downloads

JDK  下載地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

Windows 8 x64bit

Oracle Linux 6.5 x64bit

 

一、安裝 JBoss 7.x

1) 將 jboss-as-7.1.1.Final.zip 解壓到 C:\AppServ\jboss-as-7.1.1.Final ( Linux:jboss-as-7.1.1.Final.tar.gz 解壓到 \opt\jboss-as-7.1.1.Final )

2) 安裝 jdk-7u45 後,複制到 D:\Progs\jdk1.7.0_45_x64

3) 修改 C:\AppServ\jboss-as-7.1.1.Final\bin\standalone.bat

Windows:
set JAVA_HOME="D:\Progs\jdk1.7.0_45_x64"

4) 啟動JBoss。

在 Windows 平台執行 D:\programs\jboss-as-7.1.1.Final\bin\standalone.bat 完成啟動。

在 Linux 平台執行 /opt/jboss-as-7.1.1.Final/bin/standalone.sh 完成啟動

5) 停止 JBoss

Windows / Linux 平台:在Server的命令列控制台,只要按下 Ctrl + C 就能夠乾淨的停止這個Server。

 

二、增加管理使用者

訪問該Web伺服器時,提示新增用戶。可在服務端執行add-user.bat / add-user.sh 來添加管理員用戶。

Windows: C:\AppServ\jboss-as-7.1.1.Final\bin\add-user.bat
Linux: /opt/jboss-as-7.1.1.Final/bin/add-user.sh
What type of user do you wish to add?
 a) Management User (mgmt-users.properties)
 b) Application User (application-users.properties)
(a):

選擇 a) 按 Enter

Enter the details of the new user to add.
Realm (ManagementRealm) :              // 直接按 Enter ,使用預計值
Username :                                       // 填寫管理員用戶名
Password :
Re-enter Password :

添加管理員後,訪問 http://127.0.0.1:9990/console 

 

三、外面的使用者流覽設定:

如:http://192.168.3.50:8080/  是無法訪問的。因為部署完後,預設只能本機端訪問(即:只有 http://127.0.0.1/localhost 能訪問),如果想讓其他人也可以訪問你的網頁,需要修改JBoss的設定檔,即修改 standalone.xml,增加本機Web位址的內容。

1) 打開  standalone.xml

Window: C:\AppServ\jboss-as-7.1.1.Final\standalone\configuration\standalone.xml
Linux: /opt/jboss-as-7.1.1.Final/standalone/configuration/standalone.xml

2) 修改如下,即可讓外部電腦流覽,但只有主機可以管理

 
        <interface name="management">
            <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
        </interface>
        <interface name="public">
             <any-address/>
        </interface>

重新啟動JBoss,即可讓外面的使用者流覽。

 

參考:

http://www.cnblogs.com/xw-cnblogs/articles/2439969.html

http://wenku.baidu.com/view/b92437c9a1c7aa00b52acb67.html

 

MIS 發表在 痞客邦 留言(0) 人氣()

在 Oracle 的開發工具 JDeveloper 11g/12c 中除了支援 SVN Server ( Subversion ) 外,也支援 git ,但測試了 git 目前在繁體中文的 Windows 平台上支援並不好,不過摸了幾天,還是記錄一下配置心得。

環境:

1. git server 1.7.x on Oracle Linux 6.5

2. gitweb 1.7 on apache 2.x

3. git clinet on windows 8 downloadGit-1.8.5.2-preview20131230.exe

 一、安裝 git server

git_package.png  

# rpm -qa | grep git
gitweb-1.7.1-3.el6_4.1.noarch
git-1.7.1-3.el6_4.1.x86_64

二、設定 git repository:project.git 在 /opt/git_root 目錄下

# pwd
/opt/git_root
# mkdir project.git
# cd project.git/
# git init --bare
Initialized empty Git repository in /opt/git_root/project.git/

註:可以修改 /opt/git_root/project.git/description 來說明此專案目的

# vi description
git Version Control Project

三、設定 repository:project.git 權限給 AD 的 Domain Users 有權限存放資料,參考:AD Account Login Linux Server (oracle linux 與 Windows AD 帳號認證整合)

# ls -al
total 40
drwxr-xr-x. 7 root root 4096 Jan 21 12:05 .
drwxr-xr-x. 3 root root 4096 Jan 21 11:35 ..
drwxr-xr-x. 2 root root 4096 Jan 21 11:35 branches
-rw-r--r--. 1 root root  150 Jan 21 12:04 config
-rw-r--r--. 1 root root   73 Jan 21 11:35 description
-rw-r--r--. 1 root root   23 Jan 21 11:35 HEAD
drwxr-xr-x. 2 root root 4096 Jan 21 11:35 hooks
drwxr-xr-x. 2 root root 4096 Jan 21 11:35 info
drwxr-xr-x. 7 root root 4096 Jan 21 11:49 objects
drwxr-xr-x. 4 root root 4096 Jan 21 11:35 refs

# chown -R root."WEI\Domain Users" refs/
# chown -R root."WEI\Domain Users" objects/
# chmod 775 -R refs/
# chmod 775 -R objects/

四、設定 gitweb:gitweb 預設安裝到了/var/www/git 下,其設定檔在 /etc/gitweb.conf ,另外,httpd 的設定檔為 /etc/httpd/conf.d/git.conf。

1) 修改 /etc/gitweb.conf

# vi /etc/gitweb.conf
our $projectroot = "/var/www/git";

2) 修改 /etc/httpd/conf.d/git.conf

# vi /etc/httpd/conf.d/git.conf
Alias /git /var/www/git
<Directory /var/www/git>
        Allow from all
        AllowOverride all
        Order allow,deny
        Options +ExecCGI
        AddHandler cgi-script .cgi
        DirectoryIndex gitweb.cgi
        SetEnv GITWEB_CONFIG /etc/gitweb.conf
        Dav On
        RewriteEngine Off
</Directory>

3) 重啟 apache server
# service httpd restart

4) 將 Git repository in /opt/git_root/project.git 連結到 /var/www/git 下

# ln -s /opt/git_root/project.git /var/www/git

5) 在 windows 平台用流覽器查看

gitweb_viewProject.png  
 六、測試

1) 在 windows 平台上安裝 Git-1.8.5.2-preview20131230.exe ,並將目錄 C:\Program Files (x86)\Git\cmd 加入 Windows 環境變數的 PATH  中

2) 在 windows 平台上將 Linux 主機上 git repository:project.git  clone 到 D:\git_repo 目錄下,並設定 D:\git_repo\project.git 資料夾為 UTF-8 編碼

D:\git_repo>git clone polin.wei@oradb12clinux:/opt/git_root/project.git
Cloning into 'project'...
polin.wei@oradb12clinux's password:
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

設定 D:\git_repo 目錄編碼為 utf-8:
    在 D:\git_repo\project.git 資料夾上,以滑鼠右鍵點選 Git Gui。
    按「Edit」,再點選「Option」。
    將 Global (All Repositories) 的「Default File Contents Encoding」改變為「utf-8」後,按「Save」。

3) 建立一份文字檔 readme.txt,內容為 "這是第一份文件"

D:\git_repo>cd project
D:\git_repo\project>notepad readme.txt
D:\git_repo\project>type readme.txt
這是第一份文件

4) commint 文件內容

D:\git_repo\project>git commit (這說明應該是:git 測試,但它變成了 git 晴)

git_vim_windows_commit.png  
[master (root-commit) 9ccc88e] git 晴
 1 file changed, 1 insertion(+)
 create mode 100644 readme.txt

Warning: Your console font probably doesn't support Unicode. If you experience s
trange characters in the output, consider switching to a TrueType font such as L
ucida Console!

5) 將文件上載到 git server on linux

D:\git_repo\project>git push origin master
polin.wei@oradb12clinux's password:
Counting objects: 3, done.
Writing objects: 100% (3/3), 232 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To polin.wei@oradb12clinux:/opt/git_root/project.git
 * [new branch]      master -> master

6) 使用 git gui 工具上傳,操作順序為:
  a. Rescan 查看有沒有文件被修改
  b. Stage Changed 設定文件內容為已被修改
  c. Commit 文件內容確認
  d. Push 到 Linux 主機上 git repository:project.git

git_gui_modify.png  

7) 再一次在 windows 平台用流覽器查看

gitweb_view_summary.png  

 

參考:

http://git-scm.com/book/en/Git-on-the-Server-Setting-Up-the-Server

http://blog.xuite.net/yctseng/notes/35220134-gitweb

http://phpbb-tw.net/phpbb/viewtopic.php?t=53959

http://www.linuxso.com/linuxrumen/40000.html

http://www.linuxso.com/linuxrumen/40005.html

MIS 發表在 痞客邦 留言(0) 人氣()

程式碼的版本控制除了之前介紹的 CVS Server in Linux & Jdeveloper OAF in Window 開發環境的整合設定 ,還有功能較為強大的 SVN Server ( Subversion ),相信這兩個程式版本控制服務應該可以符合大部份開發人員對於版本控制的要求了。若是想架設在 Windows 平台的話,可以參考 Apache/2.0.59 (Win32) 與 SVN/1.4.3 的安裝 & Apache/2.0.59 (Win32) 與 SVN/1.4.3 對 AD 的認證  。

環境:

Oracle Linux:Oracle Linux Release 6 Update 5 for x86_64 (64 Bit)
    host: oradb12clinux
    ip: 192.168.3.50

SVN Server ( Subversion ):subversion-svn2cl-1.6.11-9.el6_4.noarch

Apache Server:1.6.11-9:httpd-2.2.15-26.0.1.el6.x86_64

認證套件:mod_dav_svn-1.6.11-9.el6_4.x86_64

Windows AD:Windows Server 2003    host: adserver.wei.com
    ip: 192.168.2.1

 Windows Client :TortoiseSVN

一、安裝相關套件

 svn_package  

# rpm -qa | grep httpd
httpd-tools-2.2.15-26.0.1.el6.x86_64
httpd-2.2.15-26.0.1.el6.x86_64
httpd-manual-2.2.15-26.0.1.el6.noarch

# rpm -qa | grep svn
mod_dav_svn-1.6.11-9.el6_4.x86_64
git-svn-1.7.1-3.el6_4.1.noarch
ltrace-0.5-23.45svn.el6.x86_64
subversion-svn2cl-1.6.11-9.el6_4.noarch

二、建立 SVN Server ( Subversion ) 的 repository 與權限設定

1) 執行 # svnadmin create /opt/svn_root/ebs_source , 這是為了要建立 SVN Server 的 repository

# svnadmin create /opt/svn_root/ebs_source
# ls -al ebs_source/
total 32
drwxr-xr-x. 6 root root 4096 Jan 17 11:08 .
drwxr-xr-x. 3 root root 4096 Jan 17 11:08 ..
drwxr-xr-x. 2 root root 4096 Jan 17 11:08 conf
drwxr-sr-x. 6 root root 4096 Jan 17 11:08 db
-r--r--r--. 1 root root    2 Jan 17 11:08 format
drwxr-xr-x. 2 root root 4096 Jan 17 11:08 hooks
drwxr-xr-x. 2 root root 4096 Jan 17 11:08 locks
-rw-r--r--. 1 root root  229 Jan 17 11:08 README.txt

 

2) 執行 htpasswd 建立檔案型認證檔:passwd ,新增使用者 polinwei & u01
# htpasswd -c /opt/svn_root/ebs_source/conf/passwd polinwei ==> passwd 檔案不在時, htpasswd 參數要下 -c
New password:
Re-type new password:
Adding password for user polinwei

# htpasswd /opt/svn_root/ebs_source/conf/passwd u01 ==> passwd 檔案己存在時, htpasswd 參數不要下 -c
New password:
Re-type new password:
Adding password for user u01

# cat /opt/svn_root/ebs_source/conf/passwd
polinwei:rOocF4eiWllRQ
u01:VHkwsuykRzVlM

3) 維護 Repository:ebs_source 的存取權限

# vi /opt/svn_root/ebs_source/conf/authz
[groups]
admins = polinwei
users  = u01
oracle_ebs_group = polinwei

[ebs_source:/] ==> 這就是 repository 的根目錄
* = r
@admins = rw
@oracle_ebs_group = rw
@users = r

#可以對每個 repository 下的目錄再作權限管理

[ebs_source:/wei]
@oracle_ebs_group = rw

[ebs_source:/test]
@admins = rw
@users = r

 4) svnserve.conf 設定檔原則上是可以不需修改,使用預設值即可

 

二、設定 apache 對 SVN Server ( Subversion ) 的存取權限

1)  編輯 Apache 的 httpd.conf

因檔案 /etc/httpd/conf/httpd.conf 中有  Include conf.d/*.conf 

# vi /etc/httpd/conf/httpd.conf
#
# Load config files from the config directory "/etc/httpd/conf.d".
#
Include conf.d/*.conf

所以只要編輯  /etc/httpd/conf.d/subversion.conf

# vi /etc/httpd/conf.d/subversion.conf

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

# 對 SVN Respository : ebs_source 作設定
<Location /ebs_source>
   DAV svn
   SVNPath /opt/svn_root/ebs_source
   AuthType Basic
   AuthName "Subversion repository"
   AuthzSVNAccessFile /opt/svn_root/ebs_source/conf/authz
   AuthUserFile /opt/svn_root/ebs_source/conf/passwd
   Require valid-user
</Location>

2) 變更 SVN Respository : ebs_source 實體目錄權限

# chown -R apache.apache ebs_source
# chcon -R -t httpd_sys_content_t ebs_source

3) 重啟 Apache 服務,與測試;網址應為 http://oradb12clinux/ebs_source/

# service httpd restart


svn_jdeveloper_client.png  

三、SVN Server ( Subversion ) 的存取權限與 Windows AD 帳號/密碼作整合

1) 將檔案型:認證密碼檔 passwd 前加 #,並設定對 Windows AD 以 LDAP 加 SSL 作認證

# vi /etc/httpd/conf.d/subversion.conf

<Location /ebs_source>
   DAV svn
   SVNPath /opt/svn_root/ebs_source
   AuthType Basic
   AuthName "Subversion repository"
   AuthzSVNAccessFile /opt/svn_root/ebs_source/conf/authz
#   AuthUserFile /opt/svn_root/ebs_source/conf/passwd
   Require valid-user

   SSLRequireSSL
   AuthzLDAPAuthoritative Off
   AuthLDAPURL ldap://adserver.wei.com:389/o=wei?cn?sub
   AuthBasicProvider ldap
</Location>

2) 維護 Repository:ebs_source 的存取權限

# vi /opt/svn_root/ebs_source/conf/authz
[groups]
admins = polinwei
users  = u01
oracle_ebs_group = polinwei,polin.wei

[ebs_source:/] ==> 這就是 repository 的根目錄
* = r
@admins = rw
@oracle_ebs_group = rw

#可以對每個 repository 下的目錄再作權限管理,注意:若目錄下權限群組名:oracle_ebs_group 沒定對時,會造成所有人沒有權限進入repository 的根目錄

[ebs_source:/wei]
@oracle_ebs_group = rw

[ebs_source:/test]
@admins = rw
@users = r

 

3) 重啟 Apache 服務,與測試;注意網址變為 https (port:443 SSL協定) https://oradb12clinux/ebs_source/ ;認證則為 windows AD 裡的帳號/密碼

# service httpd restart

 svn_ad_user_auth.png  

 

 

文章標籤

MIS 發表在 痞客邦 留言(0) 人氣()

為了在Windows主機間達到資源共享的目的,微軟發展出 SMB(Server Message Block)通訊協定,利用其網路芳鄰共享檔案系統及印表機等資源;而Samba在Linux主機上實現SMB通訊協定的系統,達成Windows與 Linux主機的資源共享,再搭配 Winbind 模組解決 Samba 中統一登入問題。因為 Linux Server 愈來愈多,為了可以達到統一單一帳號來達到管理,因此; 接下來我們要利用 samba、winbind 來整合 AD 帳號,這樣我們就可以在 AD 管理帳號就可以了。

環境:

Windows Server 2003 AD Server: ADSERVER.WEI.COM (192.168.2.1)

Oracle Linux R6.5 for x86_64 (64 Bit) :cvs.wei.com (192.168.2.69)

一、Linux 相關套件安裝與設定

1) 在安裝 Linux 主機時,可以選取相關的套件

samba_krb5_package.png samba_winbind_package.png  

2) 檢查/驗證一下相關的套件是否有裝

[root@cvs ~]# rpm -qa | grep samba
samba-common-3.6.9-164.el6.x86_64
samba-client-3.6.9-164.el6.x86_64
samba4-libs-4.0.0-58.el6.rc4.x86_64
samba-winbind-3.6.9-164.el6.x86_64
samba-3.6.9-164.el6.x86_64
samba-winbind-clients-3.6.9-164.el6.x86_64


[root@cvs ~]# rpm -qa | grep winbind
samba-winbind-3.6.9-164.el6.x86_64
samba-winbind-clients-3.6.9-164.el6.x86_64


[root@cvs ~]# rpm -qa | grep krb5
krb5-workstation-1.10.3-10.el6_4.6.x86_64
krb5-server-1.10.3-10.el6_4.6.x86_64
pam_krb5-2.3.11-9.el6.x86_64
krb5-libs-1.10.3-10.el6_4.6.x86_64

3) 使用 UI 工具來作設定

winbind_auth.png

 

winbind_auth_adv.png  

設定好後 Apply,然後記得要在 Identity & Authentication 按下 Join Domain,在 AD 的 Computers 中應該可以看到此 Linux : cvs 主機

winbind_join_domain.png winbind_join_domain_win.png  

 

4) 啟動 Samba & Winbind Services

winbind_smb_enable_service.png  

5) 最後使用 AD Domain User 來作登入測試,應該就可以成功了。

winbind_domainUser_login.png  

6) 若有目錄要給 AD Domain Users 群組可以使用, 可以用指令 # chown -R root:"WEI\Domain Users" /opt/cvs_root/ 來賦予.

Oracle Linux 在使用 samba、winbind 來整合 AD 帳號的 UI 畫面已經整合的非常好,/etc/samba/smb.conf & /etc/krb5.conf 都不需去多作編輯:只有 /var/kerberos/krb5kdc/kdc.conf 檔案內容中的 EXAMPLE.COM 要改成您的 AD 網域(如:WEI.COM),以及將 master_key_type 前的 # 去除即可。相關檔案如下:

[root@cvs samba]# cat /etc/samba/smb.conf
#======================= Global Settings =====================================

[global]
#--authconfig--start-line--

# Generated by authconfig on 2014/01/15 15:41:06
# DO NOT EDIT THIS SECTION (delimited by --start-line--/--end-line--)
# Any modification may be deleted or altered by authconfig in future

   workgroup = WEI
   password server = ADSERVER.WEI.COM
   realm = WEI.COM
   security = ads
   idmap config * : range = 16777216-33554431
   template shell = /bin/bash
   winbind use default domain = false
   winbind offline logon = true

#--authconfig--end-line--

 

[root@cvs samba]# cat /etc/krb5.conf
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = WEI.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 EXAMPLE.COM = {
  kdc = kerberos.example.com
  admin_server = kerberos.example.com
 }

 WEI.COM = {
  kdc = ADSERVER.WEI.COM
 }

[domain_realm]
 .example.com = EXAMPLE.COM
 example.com = EXAMPLE.COM

 

# vi /var/kerberos/krb5kdc/kdc.conf
[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88

[realms]
 WEI.COM = {
  master_key_type = aes256-cts
  acl_file = /var/kerberos/krb5kdc/kadm5.acl
  dict_file = /usr/share/dict/words
  admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
  supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
 }

 

二、Samba 3.x 伺服器設定說明

設定Samba最基礎的項目就是指定工作群組名稱(workgroup)及網域名稱,編輯 Samba設定檔smb.conf,以下設定都在該檔案內[global]標籤下同一段落完成。
/etc/samba/smb.conf

workgroup = WEI
realm = WEI.COM

 

避免分享資源時出現亂碼,分別設定Windows、Linux的字集。

display charset = Big5
dos charset = CP950

 

使用AD網域認證必須修改Samba的安全層級,並指定認證主機及增加Windows網路相關設定。

security = ads
password server = ADSERVER.WEI.COM
wins server = ADSERVER.WEI.COM
encrypt passwords = yes

 

Linux預設的使用者家目錄為/home/使用者名稱,針對AD網域使用者 必須另行設定其家目錄位置,主要參數為:%D代表網域名稱、%U代表使用者名稱。以下設定目的為讓網域使用者的家目錄集中在/home/網域名稱/目錄下 並以使用者帳號命名,同時讓使用者帳號自動套用網域名稱及不允許使用者離線登入。

template homedir = /home/%D/%U
winbind use default domain = false
winbind offline logon = true

 

設定AD網域使用者帳號對應到Linux使用者帳號及群組的範圍。

idmap config * : range = 16777216-33554431

 

預設Winbind快取時間為300秒,使用指令# getent passwd或# getent group時,會將NT/AD網域的使用者與群組一併列出。當使用者、群組數量太多,Winbind會無法正常傳回資料,開啟此功能可以避免這個狀況。

winbind enum users = yes
winbind enum groups = yes
winbind cache time = 300

 

若允許AD網域使用者以終端機方式登入系統,可指定AD帳號的Shell。

template shell = /bin/bash

 

視需要開啟對NT ACLs(Access Control List) 的支援。

nt acl support = yes

 

三、整合Windows AD網域帳號資訊說明

當系統查詢使用者帳號與群組時,預設由檔案尋找(/etc/passwd、/etc/group),為了使其搜尋不到相關資訊時,轉而使用Winbind向AD網域查詢,必須設定認證來源和順序。
/etc/nsswitch.conf

passwd: files winbind
shadow: files winbind
group: files winbind

 

設定本機 UID 與 GID 發放範圍,避免 AD 帳號與 Linux 本機帳號衝突,限制本機分配給新使用者的uid、gid不要超過9999。
/etc/login.defs

UID_MIN 500
UID_MAX 9999
GID_MIN 500
GID_MAX 9999
CREATE_HOME yes

 

四、Linux Server加入AD網域

在將主機加入網域之前,需先確認AD主機及Linux主機時間不得相差超過5分鐘,建議設定同一網路校時服務(Network Time Protocol),並設定DNS或host使Linux主機得知AD網域伺服器的IP位址,任修改其中一種能查詢到網域即可。
/etc/resolv.conf

Nameserver 192.168.2.1

/etc/hosts

192.168.2.1        adserver.wei.com

 

由於Windows Server 2003的AD是採用Kerberos的認證機制,因此必須設定Kerberos相關設定檔以便和AD溝通。
/etc/krb5.conf

[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = WEI.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

 WEI.COM = {
  kdc = ADSERVER.WEI.COM
 }

/var/kerberos/krb5kdc/kdc.conf

[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88

[realms]
 WEI.COM = {
  master_key_type = aes256-cts
  acl_file = /var/kerberos/krb5kdc/kadm5.acl
  dict_file = /usr/share/dict/words
  admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
  supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
 }

 

完成以上設定後重新啟動Samba及Winbind並加入設開機啟動。

# service smb restart
# service winbind restart
# chkconfig smb on
# chkconfig winbind on

 

文字模式下指令加入wei.com 網域,aduser為AD網域之使用者,只需一般權限即可。

# net ads join -U aduser
aduser's password:

 

設定與AD伺服器溝通時的使用者(經測試是不需要作此動作的)。

# wbinfo --set-auth-user=aduser
Password:

 

一般Windows使用者在加入網域後存取不會有太大的問題,但Linux Clients使用者需要向Kerberos要求憑證(ticket)。可下指定測試取得Kerberos核發的憑證,取得後使用者不需要再輸入帳號密碼 存取資源,注意網域名稱要大寫,若密碼正確會跳回命令提示字元。

# kinit 網域帳號@WEI.COM

 

取得Kerberos核發的憑證後,可以看Kerberos核發的Kicket狀態。

# klist

 

測試讀取AD帳號資訊和取得系統帳號資訊。

# wbinfo -u | -g 取得網域帳號 | 群組
# getent passwd

 

參考文件:

http://michaeljoking.myip.org/modules/tad_book3/page.php?tbdsn=18

http://blog.yam.com/gavint/article/2590383

文章標籤

MIS 發表在 痞客邦 留言(0) 人氣()

整合環境:

JDeveloper OAF in Windows 8:
Patch 17888411 for Oracle EBS R12.2.3
PC IP: 192.168.3.116

CVS Server in Oracle Linux:
R6.4 Kernel: 2.6.39-400.17.eluek.x86_64
Server IP: 192.168.3.50
HostName: oradb12clinux

一、安裝CVS

一般 Oracle Linux 已經內含 CVS 的套件[ cvs-1.11.xx(x86_64) & cvs-inetd-1.11.x(noarch) ],在安裝時記得勾選即可,若忘記勾選,等系統安裝完再從光碟安裝也可以。

csv_install  
  

1.先查看是否安裝 cvs,一般安裝在 /usr/bin/cvs

# which cvs
/usr/bin/cvs

# rpm -qa | grep cvs
cvs-1.11.23-15.el6.x86_64
cvs-inetd-1.11.23-16.el6.noarch

二、建立 Users and Groups

1. 建立cvs user group,便於管理cvs User
#groupadd cvs

2. 建立cvsroot User,屬於 cvs 群組,根目錄為/opt/cvs,不允許 login
# useradd -M -g cvs -s /sbin/nologin cvs <- 建立 cvs 的帳戶, 不建立 User Home: /home/cvs

3. 若需要建立 anonymous 帳號
# useradd -M -s /sbin/nologin anonymous

4. 將系統內其他會使用到 cvs 的 User 加入到 cvs 的 Group 中
# vi /etc/group
cvs:x:501:polinwei,anonymous,cvs

三、設定環境變數
# vi /etc/profile.d/cvs.sh 
export CVSROOT=/opt/cvs_root
export CVS_RSH=ssh (為了在 Windows 平台上的 JDeveloper 連入, 使用 SSH 連結較安全)

立即生效此環境變數
1) 重新登入
2) # export CVSROOT=/opt/cvs_root

四、建立目錄,改變/opt/cvs_root 的目錄屬性
# mkdir /opt/cvs_root
# chmod 775 /opt/cvs_root

五、初始化 Repository
# cvs init ( 或 # cvs -d /opt/cvs_root init ) <- 此指令會呼叫 $CVSROOT 環境變數,並在目錄 /opt/cvs_root 下建立目錄 CVSROOT
# chown -R root:cvs /opt/cvs_root
 
若是沒有指定 $CVSROOT 環境變數則使用下列參數
# cvs -d :localhost:/opt/cvs_root init

因為用 local 的模式在用 cvs,所以不用登入(login)
-d 是指定 CVSROOT 路徑,如果沒設環境變數就要使用此參數
init 代表要初始化 /opt/cvs 這個目錄

六、設定 xinetd
1) 在 /etc/xinetd.d/ 內已有 cvs 的設定檔
# vi /etc/xinetd.d/cvs
service cvspserver
{
        disable = no
        port                    = 2401
        socket_type       = stream
        protocol              = tcp
        wait                    = no
        user                    = root
        passenv              = PATH
        server                 = /usr/bin/cvs
        env                     = HOME=/opt/cvs_root
        server_args        = -f --allow-root=/opt/cvs_root pserver
        bind                    = 192.168.3.50
}
紅色的部份要注意,env 參數必須跟你所放置 CVS 目錄的位置一樣,server_args為登入時會用到的目錄名,bind 的 IP 改成您 Linux Server 的 IP。

2) 重新啟動 xinetd 並啟動 CVS Server
# service xinetd restart
# chkconfig cvs on

3) 檢查cvspserver服務是否已經啟動
# netstat -l |grep cvspserver

其結果如下:
tcp   0  0 oradb12clinux:cvspserver  *:*    LISTEN 

七、登入
若要使用其它使用者的話,指令: cvs -d :pserver:user_name@ip_address:/opt/cvs login

# cvs -d :pserver:polinwei@localhost:/opt/cvs_root login
Logging in to :pserver:cvs@localhost:2401/opt/cvs
CVS password:
cvs [login aborted]: connect to [localhost]:2401 failed: Connection refused

# cvs -d:pserver:polinwei@oradb12clinux:/opt/cvs_root login
Logging in to :pserver:polinwei@oradb12clinux:2401/opt/cvs_root
CVS password:
[root@oradb12clinux CVSROOT]#
若正確則會直接回到 # 提示符號,表示 CVS Server 已正常運作

八、Windows Client 程式端 JDeveloper 的設定

1) 設定CVS連結

01_cvs_conn02_cvs_ssh

注意: Repository Path 是設定 Linux 主機端上的目錄,為 /opt/cvs_root

03_cvs_root04_cvs_test  

 

2) 將 oracle 的 workplace 當作 CVS 的 module 滙入 (import) 及 匯出 (Checkout)

cvs_import_01.png

cvs_import_02.png

cvs_import_03.png

CVS 的匯入其實是將整個目錄下的資料 import 進來

cvs_import_04.png

選擇那些檔案不要匯入

cvs_import_05.png

滙入完後是否執行 checkout

cvs_import_06.png

cvs_import_07.png

輸入Linux主機上此帳號的密碼

cvs_import_08.png  

因在 import 後有執行 Checkout,發現在 JDevloper 上的 程式架構都亂七八糟了。沒關係,先將這些都移除

cvs_checkout_remove.png  
  

3) 將 CVS 的 Module: toolbox 滙出至 %JDEV_USER_HOME% 目錄下

 cvs_checkout_01.png

cvs_checkout_02.png  

將這些再從 JDeveloper 中再移除一次, 將檔仍會留在 %JDEV_USER_HOME%/toolbox 目錄下

cvs_checkout_remove.png

從目錄 %JDEV_USER_HOME%/toolbox 再將 toolbox.jws 加入

cvs_checkout_03.png

就可以看到已有 CVS 程式序號控制了.

cvs_checkout_04.png  

可以發現為何 test_fwktutorial.jsp 沒有序號控制呢? 那是因為這些共用程式是放在 %JDEV_USER_HOME%/myhtml 下的.


A. 額外進階設定:pserver (Password Server) 帳號/密碼設定

1) 為避免其它人經由 cvs 來 try password,建議可以 cvs 帳號和系統帳號分開。
# vi /opt/cvs/CVSROOT/passwd <- 該檔原本並不存在
格式為:帳號:密碼:系統帳號
ex: jdev_user:xxxxxx:usercvs

a. jdev_user 為登入 cvs 的帳號,/etc/passwd 內不需要有這個帳號
b. xxxxxx 為登入的密碼,經由 md5 編碼過,由此密碼可以建立 /opt/cvs/passwdgen.pl 來產生,如果需要密碼為:123456,則敲入# /opt/cvs/CVSROOT/passwdgen.pl "123456" ,回傳即可得到加密密碼,用其替換 passwd 檔中的 xxxxxx
c. cvs 登入後對應到 /etc/passwd 內這個帳號的權限

/opt/cvs/passwdgen.pl 檔案建立:

# su - cvs
> vi /opt/cvs/passwdgen.pl
#!/usr/bin/perl
srand (time());
my $randletter = "(int (rand (26)) + (int (rand (1) + .5) % 2 ? 65 : 97))";
my $salt = sprintf ("%c%c", eval $randletter, eval $randletter);
my $plaintext = shift;
my $crypttext = crypt ($plaintext, $salt);
print "${crypttext}\n";

改變權限及owner
#chmod 755 passwdgen.pl
#chown cvs:cvs passwdgen.pl

2) 編輯 /opt/cvs/CVSROOT/config
將 #SystemAuth=no 前的注解拿掉,該行的意思是登入的帳號不在 cvs 的 passwd 裡時,是否要對應到系統帳號。

設定 CVS 執行時所需的 lock 的目錄:LockDir=/opt/cvs_root/lock,並建立及改變此目錄權限
# pwd
/opt/cvs_root
# mkdir lock
# chmod -R 775 lock
# chown -R root:cvs lock
# service xinetd restart

3) 增加 anonymous 登入
新增 anonymous:md5密碼:nobody 至 /opt/cvs/CVSROOT/passwd 中
表示 anonymous 登入的權限是 nobody
若新增此行則 /cvs 需修改權限
#chmod o+rx /cvs

4) 設定 anonymous 權限為唯讀
# vi /opt/cvs/CVSROOT/readers
anonymous <- 新增 anonymous,該檔列表內所有帳號都只有唯讀權限,格式為一行一個帳號。

B. 指令模式
 cvs -d "CVSROOT" command
 若有用環境變數指定 CVSROOT,則可省略 -d "CVSROOT" 的參數
 CVSROOT 通常為 ":pserver:user_name@ip_address:cvs_path" 的格式,如:# export CVSROOT=:pserver:jdev_user@localhost:/opt/cvs

 cvs -d "CVSROOT" login:登入
 cvs -d "CVSROOT" import profile:將 profile 這個專案新增到 server 上
 cvs -d "CVSROOT" checkout profile:將 server 上 profile 專案整個抓下來
 cvs -d "CVSROOT" logout:登出
 cvs status <project>:列出該 project 內每個檔案的記錄
 cvs history <project>:列出該 project 內每個檔案的修改歷史記錄
 cvs annotate <pooject>:列出該 project 內每個檔案最後一次修改的記錄 

參考:

http://hsinichi.pixnet.net/blog/post/4524770-cvs-server-for-linux-%E5%AE%89%E8%A3%9D%E6%AD%A5%E9%A9%9F

http://blog.yam.com/gavint/article/2590383

http://forums.gentoo.org/viewtopic-t-55659-start-0.html

http://www.chedong.com/tech/cvs_card.html

http://www.crazysquirrel.com/computing/debian/servers/cvs.jspx

文章標籤

MIS 發表在 痞客邦 留言(0) 人氣()

環境:

EBS : R12.2.2
Package:oracle.apps.ak.hello

 

實例:

step 01: Import OA Page to MDS

使用 jdevbin/oaext/bin/ 將 Page 的 XML 檔導入 EBS 資料庫的 MDS ( Metadata Services ) 裡

cd C:\p17888411_R12_GENERIC\jdevbin\oaext\bin

C:\>import.bat %JDEV_USER_HOME%/myprojects/oracle/apps/ak/hello/webui/HelloWorldPG.xml -rootdir %JDEV_USER_HOME%/myprojects -username apps -password apps -dbconnection "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=gued02-vip.globeunion.com)(PORT=1533))(CONNECT_DATA=(SID=VIS)))"

Importing file "C:\Oracle\EBS_R12_JDEV\jdevhome\jdev\myprojects\oracle\apps\ak\hello\webui\HelloWorldPG.xml" as "/oracle/apps/ak/hello/webui/HelloWorldPG".

Import completed.

或者在 EBS AP 主機上執行,但 XML 檔案 HelloWorldPG.xml 需先上載到 EBS AP 主機上

$ adjava oracle.jrad.tools.xml.importer.XMLImporter $JAVA_TOP/oracle/apps/ak/hello/webui/HelloWorldPG.xml -username APPS -password apps -dbconnection "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=gued02-vip.globeunion.com)(PORT=1533))(CONNECT_DATA=(SID=VIS)))" -rootdir $JAVA_TOP/ ;

或是


$ java oracle.jrad.tools.xml.importer.XMLImporter $JAVA_TOP/oracle/apps/ak/hello/webui/HelloWorldPG.xml -username APPS -password apps -dbconnection "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=gued02-vip.globeunion.com)(PORT=1533))(CONNECT_DATA=(SID=VIS)))" -rootdir $JAVA_TOP/ ;


Importing file "/u01/oracle/VIS/fs1/EBSapps/comn/java/classes/oracle/apps/ak/hello/webui/HelloWorldPG.xml" as "/oracle/apps/ak/hello/webui/HelloWorldPG".
Import completed.

檢查 MDS 是否有此筆資料

SET serveroutput ON;
BEGIN
  jdr_utils.printdocument('/oracle/apps/ak/hello/webui/HelloWorldPG');
EXCEPTION
WHEN OTHERS THEN
  DBMS_OUTPUT.PUT_LINE(SQLERRM);
END;

 若要刪除此筆 MDS,則可以用 jdr_utils.DeleteDocument 的函數

begin
  jdr_utils.DeleteDocument( '/oracle/apps/ak/hello/webui/HelloWorldPG' ) ;
end ;
/

 

 

Step 02: FTP Upload class file to $JAVA_TOP

利用 FTP 工具將開發好所有 Package 的 class files,從開發本機目錄:/jdevhome/jdev/myclasses/oracle/apps/ak/hello,上載到 EBS 主機上的 $JAVA_TOP 相對應的目錄下,因為撰寫 Java 程式的 Package 為 oracle.apps.ak.hello ,所以 EBS 主機相對應的目錄為 $JAVA_TOP/oracle/apps/ak/hello,若 Package 為 wei.oracle.apps.ak.hello,則程式應上傳到 $JAVA_TOP/wei/oracle/apps/ak/hello

classUpload  

 

 Step 03: Configure the Funtions

先規劃 Funtions 的相關屬性再作設定,HTML Call 則是 Step02 中,class file 上載到 EBS 主機上的 $JAVA_TOP 相對應的目錄下,此例為/oracle/apps/ak/hello/webui/HelloWorldPG,所以HTML Call:OA.jsp?page=/oracle/apps/ak/hello/webui/HelloWorldPG

Function User Function Name Description Function Type HTML Call
POLIN_AK_HELLO POLIN_AK_HELLO Hello World SSWA jsp function

OA.jsp?page=/oracle/apps/ak/hello/webui/HelloWorldPG

 

Hello_Function_Description

 

Hello_Function_Properties

Hello_Function_WebHTML  

HTML Call:OA.jsp?page=/oracle/apps/ak/hello/webui/HelloWorldPG

 

Step 04:Configure Menu

先規劃 MENU 的相關屬性再作設定

Menu Header

Menu User Menu Name Menu Type Description
POLIN_TEST_MENU POLIN_TEST_MENU Standard Polin Testing Menu

Menu Detail

Seq Prompt Submenu Function Description
10 Hello World   POLIN_AK_HELLO POLIN_AK_HELLO

Polin_Test_Menu  

 

 Step 05:Configure Responsibility

先查出 Responsibility Name:OA Framework ToolBox Tutorial 掛的 Menu Name:OA Framework ToolBox Tutorial

OA_Responsibility_Name  

再將剛設定好的 Menu:POLIN_TEST_MENU 掛到 Menu Name:OA Framework ToolBox Tutorial 這個的下面

FWK_TBX_TUTORIAL_MENU  

 

Step 06: Restart Apache Server

login as app user

$ cd $INST_TOP/admin/scripts
$ sh adapcctl.sh stop
$ sh adapcctl.sh start [forcepatchfs]

 

 

文章標籤

MIS 發表在 痞客邦 留言(1) 人氣()

先到 Tomcat 的網站 http://tomcat.apache.org/ 下載的安裝檔 apache-tomcat-7.0.47-windows-x64.zip ,並解壓於 C:\AppServ\apache-tomcat-7.0.47x64 目錄下。因此設定 TOMCAT_HOME="C:\AppServ\apache-tomcat-7.0.47x64",並假設 JDK 的 JAVA_HOME="D:\Progs\jdk1.7.0_45_x64"。

修改下列兩個檔案:

1. C:\AppServ\apache-tomcat-7.0.47x64\bin\setclasspath.bat

rem ---------------------------------------------------------------------------
rem Set JAVA_HOME or JRE_HOME if not already set, ensure any provided settings
rem are valid and consistent with the selected start-up options and set up the
rem endorsed directory.
rem
rem $Id: setclasspath.bat 1202062 2011-11-15 06:50:02Z mturk $
rem ---------------------------------------------------------------------------

set JAVA_HOME="D:\Progs\jdk1.7.0_45_x64"

 

2. C:\AppServ\apache-tomcat-7.0.47x64\conf\tomcat-users.xml

<tomcat-users>
<!--
  NOTE:  By default, no user is included in the "manager-gui" role required
  to operate the "/manager/html" web application.  If you wish to use this app,
  you must define such a user - the username and password are arbitrary.
-->
<user username="tomcat" password="tomcat" roles="manager-gui"/>
</tomcat-users>

 

再執行 C:\AppServ\apache-tomcat-7.0.47x64\bin\startup.bat | shutdown.bat 即可開關 Tomcat Server,並可以在 http://localhost:8080/manager/html 透過帳號/密碼:tomcat/tomcat 來管理。

文章標籤

MIS 發表在 痞客邦 留言(0) 人氣()

Maven 基本概念:

Maven 是類似 ANT 的 Java 佈署工具,MavenANT 方便的地方是,Maven 會自動去下載專案中必要的 jar 檔。Maven 的 Archetype 主要是會先配置好相關不同專案類型的開發環境,有點類似 template 。

首先到官方網址下載 apache-maven-3.1.1-bin.zip 檔案,並解壓於 C:\AppServ\apache-maven-3.1.1 ( M2_HOME )目錄下。因為我的 Java JDK 是 1.6.0_07 版本,並且放在 D:\Progs\jdk1.6.0_07 目錄下。所以要修改 C:\AppServ\apache-maven-3.1.1\bin\mvn.bat ,增加 JAVA_HOME 的設定如下:

@REM ----------------------------------------------------------------------------
@REM Maven2 Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM     e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------

set JAVA_HOME="D:\Progs\jdk1.6.0_07"

 

剛提到 Maven 會自動下載專案相關的套件 JAR 檔,Windows 環境中,這就是所謂的 repository 指的是 Maven 存放套件資源的地方.若我們本機(local)電腦中沒有這些套件,Maven會自動從預設的網路位置 下載放到我們本機的repository 中,之後所有Maven專案需要用到的套件,Maven 都會先找本機的 repository,找不到再到網路上去 找;預設存放的目錄是在 ${user.home}/.m2/repository ,若要變更則是修改 %M2_HOME%\conf\settings.xml 檔案中的 <localRepository>...</localRepository>,如:<localRepository>D:/Progs/.m2/repository</localRepository>

確認一下 安裝可以正常執行

C:\AppServ\apache-maven-3.1.1\bin>mvn -ver

C:\AppServ\apache-maven-3.1.1\bin>set JAVA_HOME="D:\Progs\jdk1.6.0_07"

Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 23:22:2
2+0800)
Maven home: C:\AppServ\apache-maven-3.1.1\bin\..
Java version: 1.6.0_07, vendor: Sun Microsystems Inc.
Java home: D:\Progs\jdk1.6.0_07\jre
Default locale: zh_TW, platform encoding: MS950
OS name: "windows vista", version: "6.2", arch: "x86", family: "windows"

 

eclipse 專案實作:

Step 01:設定 Maven 在 eclipse 的環境

 maven_eclipse_preference.png  

也是可以利用 Eclipse Markplace 中去下載,與 eclipse 整合;若是整合 (Embedded) 在一起的話,那 eclipse 在 New 一個專案時,就可以看到 Maven 的選項

Maven_Project  

Step 02:建立一個 Archetype:maven-archetype-quickstart 的專案

把專案程式放在 D:\my_workspace\myMaven 目錄下

myMaven_place

 

選擇 Maven Project 預設的 Archetype:maven-archetype-quickstart

maven-archetype-quickstart

  預設將 java 的程式放在 package: com.demo 下

 myMaven_package  

整個結構就會像下圖:

myMaven_Structure  

 

手動執行看看

D:\my_workspace\myMaven>mvn exec:java -Dexec.mainClass=com.demo.App

D:\gu_workspace\myMaven\myMaven>set JAVA_HOME="D:\Progs\jdk1.6.0_07"

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building myMaven 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> exec-maven-plugin:1.2.1:java (default-cli) @ myMaven >>>
[INFO]
[INFO] <<< exec-maven-plugin:1.2.1:java (default-cli) @ myMaven <<<
[INFO]
[INFO] --- exec-maven-plugin:1.2.1:java (default-cli) @ myMaven ---
Hello World!
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.535s
[INFO] Finished at: Tue Nov 12 11:48:04 CST 2013
[INFO] Final Memory: 4M/9M
[INFO] ------------------------------------------------------------------------
D:\my_workspace\myMaven>

 

Step 03: Build JAR 檔

將要 build JAR 檔的目的位置(Goals)設為 package

maven_goals  

再針對 pom.xml  作 Maven build , 就會在 target 目錄下得到:myMaven-0.0.1-SNAPSHOT.jar
  

mvn_build  

 

參考:

http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html

文章標籤

MIS 發表在 痞客邦 留言(0) 人氣()