RSS
顯示具有 Tomcat 標籤的文章。 顯示所有文章
顯示具有 Tomcat 標籤的文章。 顯示所有文章

How to integrate Apach and Tomcat on linux(Fedora)?

原本打算以Tomcat當作專研的Http Server,上網查了些資料後,發現Tomcat在處理大量需求(request)方面的效能沒Apache高,因此有人建議以Apache處理靜態網頁,讓Tomcat專心當容器(container),有JSP or Servlet的請求時,才麻煩Tomcat。若Apache有太多需求要處理時,可讓Tomcat支援,做負載平衡(load balancing)。負責處理這些事的,是Tomcat connectors-jk。

安裝環境:
 Fedora 10

所需檔案:
 Apache:httpd-2.2.11.tar.gz
 Tomcat:apache-tomcat-6.0.20.tar.z
 Tomcat connectors:tomcat-connectors-1.2.28-src.tar.gz

第一步:安裝

安裝Apache~


解壓縮
tar -xvf httpd-2.2.11.tar.gz

安裝
cd httpd-2.2.11
./configure --prefix=/usr/local/apache --enable-so
make
make install


安裝Tomcat


解壓縮
tar -xvf apache-tomcat-6.0.20.tar.gz

搬到常用的目錄
mv apache-tomcat.6.0.20 /usr/local/tomcat


若未在linux設定Java的環境變數
請在tomcat/bin/Catalina.sh中加入JAVA_HOME=路徑


安裝jk


解壓縮
tar -xvf tomcat-connetors-1.2.28.src.tar.gz

搬到常用的目錄
mv tomcat-connectors-1.2.28-src /usr/local/jk

安裝
cd /usr/local/jk/native
./buildconf.sh
./configure --with-apxs=/usr/local/apache/bin/apxs
make

將mod_jk.so放到apache的modules
mv apache-2.0/mod_jk.so /usr/local/apache/modules

將workers.rpoperties放到apache的conf
mv /usr/local/jk/conf/workers.properties /usr/local/apache/conf


步驟2:設定

先設定apache的httpd.conf
vi /usr/local/apache/conf/httpd.conf


加入下列項目
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkShmFile logs/mod_jk.shm
JkLogLevel info
JkMount /*.jsp ajp13


設定workers.properties
vi /usr/local/apache/conf/workers.properties


以下所設定的路徑皆為我本身的環境
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr


步驟3:測試

啟動apache
/usr/local/apache/bin/apachectl start

啟動tomcat
/usr/local/tomcat/bin/startup.sh

在瀏覽器的網址列輸入http://localhost/和http://localhost/index.jsp測試看看
測試結果如下圖


[Flex]Tomcat結合Flex Part 2

1. 寫個簡單的Java程式測試。我以Dynamic Web Project建立為例。

(1) 建立Dynamic Web Project





(2) 建立java





(3) 寫個簡單的程式碼




package com.demo;

public class ROTester {
  public String sayHelloWorld(){
    return "~ Hello World ~";
  }
}



存檔後,至專案的資料夾裡,將build中連同package一起複製至Tomcat中的 webapps\flex\WEB-INF\classes裡。





2. 設定remoting-config.xml。在Tomcat中的webapps\flex\WEB-INF\flex裡。在檔案裡加上一段標籤。




<destination id="tester">
  <properties>
    <source>com.demo.RoTester</source>
  </properties>
</destination>


3. 寫個簡單的介面測試。





<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;

private function roResult(event:ResultEvent):void
{
text.text=event.result as String;
}

private function roFault(event:FaultEvent):void
{
mx.controls.Alert.show(event.message as String, "Error!!");
}
]]>
</mx:Script>

<mx:Text id="text"
fontSize="30"/>

<mx:RemoteObject id="ro"
destination="tester"
result="roResult(event)"
fault="roFault(event)"/>

<mx:Button label="Click"
click="{ro.sayHelloWorld()}"/>

</mx:Application>



4. 執行(Run as Flex Application)





[Flex]Tomcat結合Flex Part 1

之前開發結合JavaFlex project時,都是選擇使用WTP(Web Tools Platform)結合兩者,但這樣會造成開發的專案容量變得很大(因為會將flex.war的內容載入到專案裡)。將flex.war部署到Tomcat裡,這個問題就能迎刃而解,不過缺點是...因為無法在Flex project裡開發Java,必須另外建一個專案開發Java,例如:Dynamic Web Project,然後將其*.class檔放到tomcat裡已佈署的flex.war,下面會介紹。

TomcatLifeCycle Data Services(LCDS)的安裝過程就不介紹了,照著安裝步驟即可完成。

1. lcds資料夾裡的flex.war複製至Tomcat中,webapps的資料夾裡。




2. (重新)啟動TomcatTomcat有提供Configure Tomcat啟動/停止的功能,我個人是習慣在服務裡啟動/停止。







在啟動過程中,Tomcat會自動部署flex.war





3. 啟動完成後,測試看看有無成功。在網址列輸入:http://localhost:8080/flex/




成功!

4. 建立結合JavaFlex project







若沒有要匯入swc檔或其他外部檔案,可直接按Finish完成。