E81086713E446D36F62B2AA2A3502B5EB155

Java杂家

杂七杂八。。。一家之言

BlogJava 首页 新随笔 联系 聚合 管理
  141 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 阅读(2069) 评论(1)  编辑  收藏

Feedback

# re: Introduction To Apache Java Module[未登录] 2008-06-18 14:24 我要去桂林
关注  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: