使用Jetty佈署Apache ODE
環境說明:
Ubuntu server 64bit
OpenJDK 6 update 24
MySQL 5.5
ODE 1.3.5
這個howto主要是jetty和tomcat在jndi的設定上的不同(ODE只有提供tomcat的佈署說明),而其他的部份是順便一起寫進來,便寫成一個完整的howto。
Ubuntu server 64bit
OpenJDK 6 update 24
MySQL 5.5
ODE 1.3.5
這個howto主要是jetty和tomcat在jndi的設定上的不同(ODE只有提供tomcat的佈署說明),而其他的部份是順便一起寫進來,便寫成一個完整的howto。
- 從官網下載jetty 6,這裡使用6.1.26版本。並解壓縮至/opt(可依喜好選擇其他的目錄)。
~ $ unzip jetty-6.1.26.zip -d /opt
- 建立一個名為jetty的使用者。
~ $ sudo adduser --no-create-home --disabled-password --disabled-login jetty
- 將解壓縮的jetty目錄的使用者設為jetty,群組為adm。如果之後有新增任何檔案,同樣要注意使用者和群組的設定。
~ $ sudo chown -R jetty.adm /opt/jetty
- 新增/etc/default/jetty檔案,這個檔案可以設定jetty所使用的環境變數,參考內容如下,可以根據自己的環境修改。
JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64 JETTY_HOME=/opt/jetty JETTY_PORT=8080 JETTY_USER=jetty
- 建立/etc/jetty.conf檔案,這個檔案可以設定jetty會啟動哪些features。ODE是使用jndi data resource來連接資料庫,所以需要啟動plus feature。一行一個設定檔,參考內容如下。
/opt/jetty/etc/jetty.xml /opt/jetty/etc/jetty-plus.xml /opt/jetty/etc/jetty-logging.xml
- 修改jetty-plus.xml檔案,找到如下這段,將
這段的註解拿掉。根據這裡的設定,會將webapps-plus目錄裡的應用程式提供plus feature,jndi即是其中之一。所以在JETTY_HOME下建立一個webapps-plus的目錄。這段設定,詳細可參考官網的解說。 /webapps-plus false true false /etc/webdefault.xml - 下載ODE,解壓縮後將ode.war檔案放至$JETTY_HOME/webapps-plus目錄下。解壓縮ode.war至ode目錄(使用unzip)。
PS. 要把war檔案解壓縮是因為要新增一些設定檔,一般來說是不用的。 - 在ode/WEB-INF/下新增一個jetty-env.xml檔案,這裡是設定jndi data resource。這裡的設定只能給ode應用程式使用,如果要做全域的設定,例如還有其他應用程式也要存取相同的data resource,可以將這段設定寫進$JETTY_HOME/etc/jetty.xml。到這裡,jetty有關的設定到此差不多完成了,接下來就剩下ode自己的設定,基本上在Apache ode官網上也找的到,不過我也一併寫出來。
jdbc/ODEDB jdbc:mysql://localhost:3306/ODE?autoReconnect=True username password - ODE預設使用Derby,因此要另外設定,參考官網的說明。大概有幾件事要做:
- 建立資料庫。下載的ode zip檔裡面有包含sql schema。
- 記得下載mysql jdbc driver,並放到ode/WEB-INF/lib目錄下。
- 新增ode-axis2.properties檔案到ode/WEB-INF/conf下,告訴ode使用資料庫使用Mysql,就是在這裡設定所使用的jndi data resource。
ode-axis2.db.mode=EXTERNAL ode-axis2.db.ext.dataSource=java:comp/env/jdbc/ODEDB
- 編輯ode/WEB-INF/web.xml,找到下面這段,將註解拿掉,這是官網遺漏的部份。這邊如果沒有設定,應用程式會找不到jndi data resource喔。
jdbc/ODEDB javax.sql.DataSource Container Shareable
留言