使用Jetty佈署Apache ODE

環境說明:
Ubuntu server 64bit
OpenJDK 6 update 24
MySQL 5.5
ODE 1.3.5

這個howto主要是jetty和tomcat在jndi的設定上的不同(ODE只有提供tomcat的佈署說明),而其他的部份是順便一起寫進來,便寫成一個完整的howto。
  1. 官網下載jetty 6,這裡使用6.1.26版本。並解壓縮至/opt(可依喜好選擇其他的目錄)。
    ~ $ unzip jetty-6.1.26.zip -d /opt
    
  2. 建立一個名為jetty的使用者。
    ~ $ sudo adduser --no-create-home --disabled-password --disabled-login jetty
    
  3. 將解壓縮的jetty目錄的使用者設為jetty,群組為adm。如果之後有新增任何檔案,同樣要注意使用者和群組的設定。
    ~ $ sudo chown -R jetty.adm /opt/jetty
    
  4. 新增/etc/default/jetty檔案,這個檔案可以設定jetty所使用的環境變數,參考內容如下,可以根據自己的環境修改。
    JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64
    JETTY_HOME=/opt/jetty
    JETTY_PORT=8080
    JETTY_USER=jetty
    
  5. 建立/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
    
  6. 修改jetty-plus.xml檔案,找到如下這段,將這段的註解拿掉。根據這裡的設定,會將webapps-plus目錄裡的應用程式提供plus feature,jndi即是其中之一。所以在JETTY_HOME下建立一個webapps-plus的目錄。這段設定,詳細可參考官網的解說
    
    
    
    
    
    
      
        
          
            
            /webapps-plus
            false
            true
            false
            /etc/webdefault.xml
            
          
        
      
    
  7. 下載ODE,解壓縮後將ode.war檔案放至$JETTY_HOME/webapps-plus目錄下。解壓縮ode.war至ode目錄(使用unzip)。
    PS. 要把war檔案解壓縮是因為要新增一些設定檔,一般來說是不用的。
  8. 在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
                 
             
        
    
    
  9. 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
      
      
到這裡就設定完成了,可以啟動jetty看看,網址會是http://ip:8080/ode/,如果網頁開不了,請到$JETTY_HOME/logs下查看錯誤,並往前檢查看看哪裡沒設定好。如果有漏掉的部份,請留言給我,謝謝。

留言

熱門文章