E81086713E446D36F62B2AA2A3502B5EB155

          Java雜家

          雜七雜八。。。一家之言

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

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

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

          目前初步實現(xiàn)了基本框架,一個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/*時,自動會執(zhí)行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.

          目前讀取輸入數(shù)據(jù)尚未實現(xiàn),等完善了我再提供下載文件。


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

          Feedback

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


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


          網站導航:
           
          主站蜘蛛池模板: 博爱县| 河间市| 灵宝市| 台北市| 灌云县| 镇雄县| 郸城县| 澄城县| 灵宝市| 榆树市| 东兴市| 拜城县| 土默特右旗| 璧山县| 绿春县| 蒲城县| 贡嘎县| 梁河县| 成都市| 阳谷县| 蕉岭县| 凌云县| 普宁市| 浮梁县| 大同市| 青铜峡市| 大埔县| 阳信县| 额敏县| 苍山县| 闽清县| 雷山县| 庐江县| 永宁县| 龙口市| 江口县| 五家渠市| 峡江县| 双牌县| 海原县| 和硕县|