E81086713E446D36F62B2AA2A3502B5EB155

          Java雜家

          雜七雜八。。。一家之言

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            40 Posts :: 1 Stories :: 174 Comments :: 0 Trackbacks
          一 。Apache Java Module是什么?

          Apache Java Module是一個Apache2.2 Server下的一個模塊,這個模塊可以嵌入一個JVM,可以無縫地跟Apache整合在一塊,從而便于發布高性能的基于Java的HTTP解決方案。

          二。為什么要這么做
          1)首先,Apache是HTTP服務器市場的領頭羊
          2)處于性能的考量。
          3)Servlet API有它本身的局限性,例如連接相關的信息基本是被隱藏起來了,這樣當你想要異步推數據給客戶端時,只能去求助Comet了。
          4)只要愿意,我可以同時跑Apache和Tomcat,并在一個進程內同時為兩個端口服務。
          三。示例

          目前初步實現了基本框架,一個Hellow,world的例子見下:
          首先配置Apache,在conf文件里加上:
          LoadModule java_module modules/mod_java.so

          <mod_java org.apache.catalina.startup.Bootstrap>
          JVMLibrary D:\jdk1
          .6\jre\bin\server\jvm.dll
          CurDir D:\apache-tomcat-
          6.0.10
          ADDJVMOpt -Djava.class.path
          =D:\apache-tomcat-6.0.10\bin\bootstrap.jar;D:\cspace\mod_java\mod_java.jar
          ADDJVMOpt -Djava.library.path=D:\apache-tomcat-6.0.10\bin
          ADDJVMOpt -Dcatalina.home
          =D:\apache-tomcat-6.0.10
          ADDJVMOpt -Duser.dir
          =D:\apache-tomcat-6.0.10
          ADDJVMParam start
          ADDJVMStopParam stop
          ADDJavaHandler javatest com.yovn.apache.modj.HelloWorld
          </mod_java>
          <Location /javatest>
              SetHandler javatest
          </Location>

          這段配置腳本,同時會啟動一個Tomcat在一個新的線程。
          并且,當你請求/javatest/*時,自動會執行com.yovn.apache.modj.HelloWorld來滿足這個請求,下面看
          這個示例程序:

          /**
           * 
           
          */
          package com.yovn.apache.modj;

          import java.io.IOException;
          import java.io.InputStream;
          import java.io.OutputStream;
          import java.io.PrintStream;

          /**
           * 
          @author yovn
           *
           
          */
          public class HelloWorld implements RequestHandler {

              
          /**
               * 
               
          */
              
          public HelloWorld() {
                  
          // TODO Auto-generated constructor stub
              }

              
          /* (non-Javadoc)
               * @see com.yovn.apache.modj.RequestHandler#processRequest(java.lang.String, int, long, long, java.io.InputStream, java.io.OutputStream)
               
          */
              @Override
              
          public void processRequest(String url, int method, long req, long conn,
                      InputStream in, OutputStream out) 
          throws IOException,
                      ModJavaException {
              

                  //ApacheModule.setHeader(req, "X-Server", "mod_java");
                  out.write("<html><head><title>Hello,World</title></head><body><h1>Hello,World</h1></body></html>".getBytes());
                  out.close();

                  

              }

          }
          這是個很簡單的程序,當你在瀏覽器輸入http://host:apache_port/javatest/時,顯示Hello,World.

          目前讀取輸入數據尚未實現,等完善了我再提供下載文件。


          posted on 2008-06-18 00:05 DoubleH 閱讀(2078) 評論(1)  編輯  收藏

          Feedback

          # re: Introduction To Apache Java Module[未登錄] 2008-06-18 14:24 我要去桂林
          關注  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 靖西县| 无棣县| 陆良县| 远安县| 从化市| 临城县| 彝良县| 古蔺县| 肇州县| 新安县| 渝中区| 峨山| 鞍山市| 朔州市| 镇江市| 闽侯县| 石台县| 汝阳县| 芦溪县| 清水河县| 浮山县| 房山区| 闻喜县| 故城县| 横山县| 安陆市| 辉县市| 海兴县| 呈贡县| 安阳县| 道真| 江津市| 安吉县| 盈江县| 新巴尔虎左旗| 宜君县| 祥云县| 尉犁县| 上饶市| 阳西县| 房山区|