繁体中文
设为首页
加入收藏
当前位置:JSP技术首页 >> 资料/其它 >> Resin服务器的使用(一篇不错的文章,如果想使用resin做服务器建议看看)

Resin服务器的使用(一篇不错的文章,如果想使用resin做服务器建议看看)

2005-01-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:一、Java Web服务器选择简介 在实际进行java Web项目实施的时候,我们可以采用的商业java Web服务器有Ibm WebSphere,Bea Web Logic 。这两种服务器功能齐全而强大,支持所有的java 服务容器标准,适合成品商业ja...

一、Java Web服务器选择简介

在实际进行java Web项目实施的时候,我们可以采用的商业java Web服务器有Ibm WebSphere,Bea Web Logic

。这两种服务器功能齐全而强大,支持所有的java 服务容器标准,适合成品商业java Web应用的发布。但是

这两种服务器是商业服务器,价格昂贵,而且对系统资源要求极高。特别是Websphere 配置复杂,如果不配合

采用ibm Websphere Studio Application非常不适合开发。而且他们不同的版本对servlet.jar等javax组件和

jdk的要求不同。如Websphere 3.5所要求的servlet.jar 支持的是旧版本的javax.servlet.http.HttpSession

操作,不支持session.setAttribute() session.getAttribute()。

在开发或者学习过程中,有许多免费的轻型的Java Web服务器可以供我们选用,如Tomcat,Resin,Orion等等。

他们使用都很方便,占用资源也很少,适合开发中不断的调试;还可以和Jbuilder这样的集成开发工具集成使

用。根据实际开发中的情况来看,Jakata Tomcat 和Sun Java结合的最好,和其他应用服务器配合使用可支持

完整的j2ee标准,应用也很广泛。但是从Java 普遍存在的编码问题来看,还是Resin 解决的最好。还有从使

用的角度讲,个人认为Resin比Tomcat方便,而且Resin也可以结合Jbuilder6等ide使用。Resin强调使用Xml技

术,从Resin自己的HomePage使用xtp就可以看出来。

二、Resin的安装和配置

Resin 可以在 http://www.caucho.com/download/index.xtp 免费下载和使用。使用Resin开发或者学习是免

费的,但是如果把Resin作为收费产品发布是需要付费的。目前的版本是2.10。

下载Resin 时选择Archive Versions 中的 windows.zip的普通安装包resin-2.1.0.zip。

把该zip包解压到任何目录下面,如d:\resin。以下介绍都假设Resin安装在d:\resin下。进入d:\resin\bin,

键入httpd,可以在命令行控制台下运行Resin服务器。此时弹出一个有start 和stop两个Radio按纽和一close

按纽的对话框。在这里可以看到Resin的运行信息。这些信息同时Resin可以在d:\resin\log目录下面的

stdout.log 日志文件中察看到。如:

Resin 2.0.4 (built Thu Nov 15 17:56:24 PST 2001)

Copyright(c) 1998-2001 Caucho Technology. All rights reserved.

Starting Resin on Wed, 23 Jan 2002 14:41:47 +0800 (CST)

http listening to *:80

srun listening to haitaiserver:6802

点选stop,可以停止当前的Resin服务器进程;再点选start,又可以开启新的Resin服务器进程。关闭该对话

框,则回到Command 控制台的盘符提示状态下。如果在nt4或者win2k环境下,需要把Resin当成服务,只需要

在Command控制台的该目录下,键入 httpd ?install,就可以在管理工具的服务下面看到新增了一条Resin

Web Server的自动的服务。以后只要进入nt 4或者win2k,就可以启动Resin服务。该服务也可以像其他服务一

样设置成手动或者禁用状态。注意有的时候在安装完服务后,启动Resin,并不能看到自己写的Resin例程可以

被解析,浏览器显示服务器找不到错误。只要重新启动win2k或者nt,就能解决该问题。

下面简要介绍一下Resin服务器的配置。Resin服务器和大多数Java Web服务器一样,通过一个Xml文件配置。

进入d:\resin\conf目录,打开resin.conf,这是一个xml格式的文本。

这里面有很多标记,先查找到:。在标记对中的配置和resin的

Java Web 服务器有关。找到,在标记对中的表示resin的根,相当于Apache的

htdocs 或者 IIS 的wwwroot。Resin自带http服务器,但是也可以不使用它,采用Apache 或者 IIS做http服

务器。这个在下面段落中会提到。

再查找标记,它可以这样配置。host参数指定的

是服务器,port指定的是http端口,默认是localhost和8080。还有

标记。这个是jsp和java Servlet的引擎配置。一般默认就可以了,除非6802端口已经被别的程序占用了。然

后,配置jdk。这个需要在classpath中设置。右键点击我的电脑,在系统特性的高级标签中,点击环境变量,

在系统变量中新建一个环境变量,变量名为classpath,值为jdk所在的目录;再新建另外一个环境变量,变量

名为path,值为javac.exe和java.exe所在的目录(在jdk所在的目录下面的bin目录下)。一般这样子配置以

后,Resin就可以使用了。在d:\resin\doc中(假设你的对中的名称是doc,也就是根是

d:/resin/doc,而且你的如左配置),随便写一个jsp文件,如可以写

个test.jsp文件,内容为<%=1+2+3%>。然后,在浏览器中,键入http://localhost/test.jsp。如果你可以看

到浏览器显示6,则表示Resin服务器已经可以正常运行了。注意,修改配置后,一般重新启动resin才能看到

变化。

三、Resin使用简介

使用Resin开发Java Web项目时,需要建立自己的WebApp。这里不介绍Resin Cmp/Ejb的开发和使用,只介绍用

Resin开发普通的jsp\java servlet项目。在这里还要谈到resin.conf的配置。Resin中的应用可以有2种方式

发布:一是在Resin的目录下发布;二是打包成War发布。

1、在Resin的目录下发布

在resin.conf中查找标签,该标签表示一个web应用。

标签中,id属性表示该应用的Web路径。如,表示该应用在Web上访问的时候应该用

http://hostname/test/来访问。app-dir属性表示该应用的实际路径。如

d:\resin\doc\test表示该应用在d:\resin\doc\test目录下面。默认值为根下面的和id

同名的目录。Resin可以配置3种error-page:404错误也就是文件找不到错误页;Exception违例页;不能连接

java引擎页。他们分别可以这样子设置。

404文件找不到页

Exception 违例页

location='/nullpointer.jsp'/>

不能连接到srun Servlet引擎错误页

该页设置和应用无关,属于服务器的设置。

location='/missing_file.html'/>

classpath的设置

参见下面的语句:

id参数的值表示classpath中编译后的class的存放路径;source参数的值表示classpath中java源代码的存放

路径;compile中的值可能是true或者false,表示是否由Resin的srun自动编译java源代码。Classpath的设置

一般和javaBean或者Servlet的使用有关。id的值表示javaBean的编译好的包存放的根,source的值表示

javaBean的java源代码存放的根。Servlet相同。

Servlet的设置

参见下面的语句:

一般就是指定那些需要通过srun的解析。比如在这里,把*.jsp改成*.jss,其他不变,那么只要在访问时遇到

*.jss的文件就和原来遇到*.jsp一样处理。通过这个可以指定解析的引擎,如以下的配置:

在Servlet中,也可以指定servlet。如

在servlet-mapping中有个重要的参数case-sensitive 如果在windows上,最好配置成false,忽略大小写,从

而和windows的约定一致。

Session的配置

参见如下的配置语句:

4096

30

true

true

WEB-INF/sessions

session-max :最大 session数量

session-timeout :session过期时间,以分钟为单位。

是否允许cookie :指session是否采用cookies。如果采用cookies,浏览器必须支持session才能使用,发布

时建议改成false。enable-url-rewriting和enable-cookies一般配合使用。如果enable-cookies是false,

enable-url-rewriting应该设成true比较合适。

file-store :该配置指示服务器是否把session作为文件存放在服务器上。如果把该项注释掉,则在你的

web-app目录下的WEB-Inf/sessions目录不保存序列化后的session对象。Session还有jdbc-store配置,对应

着把session通过jdbc永久保存在数据库中。其实也就是会话变量的序列化后的保存和重新载入的物理实现。

在这里session还支持了多服务器的设置问题,

通过tcp-store参数设置。由于涉及到负载平衡的问题,在这里不详细叙述,只简单写一个例子:

这个例子表示session是按照tcp ring的方式传递。

temp-dir 的设置

temp-dir指的是应用的临时目录。也就是在javax.servlet.context.tempdir中用到的目录。模认是应用目录

下的WEB-INF\tmp目录。

以上的设置都可以在标签对中设置,控制某个web应用的设置。

2、打包成War发布

以下是介绍对如何在resin下使用已经打包成War的java Web应用进行发布。

其实这个是最简单也是最清晰的良好方法。在j2ee中,所有的项目都打包成ear发布。其中,Web应用打包成

war,ejb应用打包成jar。在resin中,这些都可以直接部署。这里我只对打包成war的Web应用的部署做介绍。

在resin.conf中,查找这个:。他表示war文件应该被拷贝的路径。这里指的是相对

于resin的安装路径,如以上的设置表示d:\resin\webapps。只要重新启动Resin就可以了。Resin会把该war自

动解包到webapps目录下。你可以在command控制台或者stdout.log中看到类似于

[2002-04-27 09:56:21.680] initializing application http://haitaiserver:8080/rwtest 的语句。这个

表示该Web应用是自动安装的。只要这个应用是符合j2ee标准的Web应用,应该不会有问题。通过如上显示的路

径就可以访问到这个应用。如果你到d:\resin\webapps\rwtest中浏览,你会看到Resin已经为你生成了rwtest

目录,下面是META-INF和WEB-INF还有你自己的JSP\servlet 文件和目录。是完全符合j2ee的结构的。你可以

在rwtest目录下建立新的jsp\servlet,一样可以被编译和解析并运行的。在实际操作中,可以使用Jbuilder

或者 WebSphere等Ide工具进行集成调试和打包,非常的方便。

四、使用Resin进行java Web项目的开发和调试

这里篇幅有限,不可能讲太多,我只对实际中最有用的部分做介绍。

Resin中如果定义了错误页,则出错后最常见的一大串Exception不会被看到,直接跳转到错误页。所以建议开

发中先不设置错误页。jsp错误中最常见的就是Nullpoint Exception,其次是名称的拼写错误。错误也可以在

Resin安装目录下的log目录下的stderr.log中找到。通过对该log文件的分析可以看到很多有用的错误信息。

在调试jsp的时候,如果定义了compile为true,jsp先被翻译成Servlet的java文件,再被编译成class文件。

可以在你自己的work目录中找到该文件。java的名称在Resin中是这样子定义的:原先的jsp文件名前加下划线

,再加上_jsp这个字样。所以在java 应用中的命名不要以_jsp结尾,也不要出现中文名称等字符;其实名称

以_jsp为开头也是不合法的。

关于java对多国语言的支持问题,在Resin中得到了很好的解决。以jsp为例,参考Resin自动生成的java

Servlet文件。只要在任何的jsp文件的最开始处增加:

<% @page contentType="text/html;charset=gb2312" %>

中文问题就解决了。察看生成的Servlet源文件片断:

response.setContentType("text/html;charset=gb2312");

request.setCharacterEncoding("GB2312");

以上为设置字符集

private static byte[] _jsp_string26;

private static byte[] _jsp_string27;

_jsp_string26 = "\r\n\r\n\r\n\r\n \r\n

  scott

  tiger

  5

然后,在你的jsp或者servlet中就可以这样子使用了:

先导入 com.caucho.sql.*包,然后如下直接得到连接:

Connection conn = DBPool.getPool("ORCL").getConnection();

个人建议不要如上使用连接池,还是按照ejb的方法用从Context中直接找到的DataSource对象中得到连接通用

性比较好。代码也很简单:

Context ctx = new InitialContext();

DataSource ds = (DataSource)ctx.lookup(“jdbc/EmployeeDB”);

Connection conn = ds.getConnection();

在Resin中如下配置jdbc就可以了:

jdbc/EmployeeDB

javax.sql.DataSource

用Resin Web Server开发还是比较愉快的。只是没有像Weblogic 或者WebSphere那样子提供现成的管理控制台而已。但是从稳定性和方便性来讲,Resin个人认为比Tomcat要好很多。况且Resin还有提供了resin-cmp 和 resin-ejb,功能更强大。

".getBytes("GB2312");

_jsp_string27 = "\r\n

\r\n

责任编辑:admin
相关文章