Resin安装使用

一.简介

   Resin是CAUCHO公司的产品,是一个非常流行的支持servlets和jsp的引擎,速度非常快。Resin本身包含了一个支持HTTP/1.1的WEB服务器。虽然它可以显示动态内容,但是它显示静态内容的能力也非常强,速度直逼APACHESERVER。许多站点都是使用该WEB服务器构建的。
Resin也可以和许多其他的WEB服务器一起工作,比如Apache server和IIS等。Resin支持Servlets 2.3标准和JSP 1.2标准。熟悉ASP和PHP的用户可以发现用Resin来进行JSP编程是件很容易的事情。
Resin支持负载平衡(Load balancing),可以增加WEB站点的可靠性。方法是增加服务器的数量。比如一台SERVER的错误率是1%的话,那么支持负载平衡的两个Resin服务器就可以使错误率降到0.01%。
 Resin提供了最快的jsp/servlets运行平台。在java和javascript的支持下,Resin可以为任务灵活选用合适的开发语言。Resin的一种先进的语言XSL(XML stylesheet language)可以使得形式和内容相分离。 如果您选用jsp平台作为internet商业站点的支持,那么速度、价格和稳定性都是要考虑到的,resin十分出色,表现更成熟,很具备商业软件的要求。而且,它是全免费的。从站点下载的就是完整版本。所以值得向您推荐! 相对于tomcat3.1,后者更象是一个正在研究的项目。resin可以支持sun的j2ee,而tomcat不能直接支持,而j2ee是基于java服务器端大系统的基础。
Resin3 之后已经不再是一个简单的jsp容器,并且支持ejb,jta等企业功能。resin4 (2010年后已经比较稳定)性能更是优秀。并且已经支持servlet 3.0标准. pro版本是收费版本,支持负载均衡和文件缓存。很多大型门户网站都采用pro版本作为应用服务器.
tomcat版本6.x也已经发展成为一个快速稳定的轻巧的jsp容器。和resin是不同的发展方向。tomcat6并不支持ejb,jta等高级功能,需要自己扩展,比较麻烦。但支持负载均衡。
CAUCHO公司,还为resin添加了php解析执行功能。能够运行php程序。但相对php的原生版本还是有一定差距。
版本区别
resin 普通版本和pro版本主要区别是 pro支持缓存和负载均衡。pro因为有强大的cache功能,独立作为web服务器处理静态页面性能都可以和apache有一比。但普通版本独立作为web服务器性能就要差一些。当然可以使用apache+resin的方案借助apache的缓存功能提高性能。 但负载均衡就是普通版不能比的了。
 
下载地址:http://caucho.com/products/resin/download
  二.windows下安装配置
1. 首先需要安装JDK,然后将下载的文件解压到任意路径
2.运行setup.exe,进行配置


 
 3.运行resin.exe,进行启动


 出现以上界面,表示启动成功
4.点击第二个链接,进入管理界面


 先创建一个用户名密码
5.接下来按照提示将用户名密码写入配置文件


 
看描述不再多说
6.重启resin,再次点击即可进入管理界面
7.发布应用
(1)与tomcat类似的,将工程打包放在resin-4.0.40\webapps目录下,都懂的,不再多说
(2)找到conf/resin.xml,在其中的<host id="" root-directory="."> 节点加入工程路径
   <host id="" root-directory=".">
      <!--
         - webapps can be overridden/extended in the resin.xml
        -->
      <web-app id="/" root-directory="webapps/ROOT"/>
	  <web-app id="/demo" root-directory="D:/WorkSpace/demo/WebRoot"/>	
    </host>
 即可发布项目
 
三.linux下的安装配置
1.上传安装包并解压到/usr/local/resin-4.0.40
2.运行命令:
[root@HTML5 resin-4.0.40]# ./configure --prefix=/usr/local/resin-4.0.40 --with-java-home=$JAVA_HOME --enable-64bit
出现报错:
configure: error: in `/usr/local/resin-4.0.40':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details

原因是centos linux,默认可以采用yum方式安装,则采用如下命令安装gcc编译器即可

[root@HTML5 resin-4.0.40]# yum -y install gcc

再次运行配置成功!

3.启动resin

[root@HTML5 resin-4.0.40]# ./bin/resin.sh  start
Resin/4.0.40 launching watchdog at 127.0.0.1:6600
Resin/4.0.40 started -server 'app-0' with watchdog at 127.0.0.1:6600

4.发布项目

方式(1)(2)同windows下,但是这两种方式均不能单独启动一个应用,当有多个应用时重启resin会影响每一个项目,下面介绍一种能单独启动一个应用的方法:

找到resin.xml,在最下面添加以下两个节点

<cluster id="test-hessian-server">
    <!-- sets the content root for the cluster, relative to resin.root -->
    <root-directory>.</root-directory>
    <access-log path="/usr/local/resin-4.0.40/log/test_hessian_server_access.log
"
                 format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i" %
T'
                rollover-period="1W" />

    <server-default>
		<http address="*" port="9080" />
		<thread-max>10240</thread-max>
        <thread-idle-timeout>60s</thread-idle-timeout>
        <request-timeout>10s</request-timeout>
        <jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>
        <jvm-arg>-Dcom.sun.management.jmxremote.port=51518</jvm-arg>
        <jvm-arg>-Dcom.sun.management.jmxremote.ssl=false</jvm-arg>
        <jvm-arg>-Dcom.sun.management.jmxremote.authenticate=false</jvm-arg>
        <jvm-arg>-Xms512m</jvm-arg>
        <jvm-arg>-Xmx512m</jvm-arg>
        <jvm-arg>-Xmn256m</jvm-arg>
        <jvm-arg>-Xss1024k</jvm-arg>
        <jvm-arg>-XX:PermSize=256m</jvm-arg>
        <jvm-arg>-XX:MaxPermSize=512m</jvm-arg>
        <jvm-arg>-XX:SurvivorRatio=8</jvm-arg>
        <jvm-arg>-XX:MaxTenuringThreshold=8</jvm-arg>
        <jvm-arg>-XX:GCTimeRatio=19</jvm-arg>
        <socket-timeout>10s</socket-timeout>
        <keepalive-max>128</keepalive-max>
        <keepalive-timeout>15s</keepalive-timeout>
        <keepalive-connection-time-max>60s</keepalive-connection-time-max>
        <jvm-arg>-XX:+DisableExplicitGC</jvm-arg>
        <jvm-arg>-XX:+UseParNewGC</jvm-arg>
        <jvm-arg>-XX:+UseConcMarkSweepGC</jvm-arg>
        <jvm-arg>-XX:+CMSPermGenSweepingEnabled</jvm-arg>
        <jvm-arg>-XX:+UseCMSCompactAtFullCollection</jvm-arg>
        <jvm-arg>-XX:CMSFullGCsBeforeCompaction=0</jvm-arg>
        <jvm-arg>-XX:+CMSClassUnloadingEnabled</jvm-arg>
        <jvm-arg>-XX:-CMSParallelRemarkEnabled</jvm-arg>
        <jvm-arg>-XX:CMSInitiatingOccupancyFraction=70</jvm-arg>
        <jvm-arg>-XX:SoftRefLRUPolicyMSPerMB=0</jvm-arg>
        <jvm-arg>-XX:+PrintClassHistogram</jvm-arg>
        <jvm-arg>-XX:+PrintGCDetails</jvm-arg>
        <jvm-arg>-XX:+PrintGCTimeStamps</jvm-arg>
        <jvm-arg>-XX:+PrintGCApplicationConcurrentTime</jvm-arg>
        <jvm-arg>-XX:+PrintGCApplicationStoppedTime</jvm-arg>
        <jvm-arg>-XX:+HeapDumpOnOutOfMemoryError</jvm-arg>
        <jvm-arg>-Xloggc:gc.log</jvm-arg>
        <jvm-arg>-Xdebug</jvm-arg>
	<jvm-arg>-Xrunjdwp:transport=dt_socket,address=9988,server=y,suspend=n</
jvm-arg>
    </server-default>

    <server id="hessian-server" address="127.0.0.1" port="6801">
    </server>

    <host id="" root-directory="/usr">
	<web-app id="/test-hessian-server" root-directory="local/web/test-hessia
n-server">
		<character-encoding>utf-8</character-encoding>
		<jsp>
		  <session>false</session>
		  <trim-directive-whitespaces>true</trim-directive-whitespaces>
		</jsp>
	</web-app>
    </host>

  </cluster>
  
  
  
<cluster id="demo">
    <!-- sets the content root for the cluster, relative to resin.root -->
    <root-directory>.</root-directory>
    <access-log path="/usr/local/resin-4.0.40/log/demo_access.log"
                 format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i" %
T'
                rollover-period="1W" />

    <server-default>
		<http address="*" port="8080" />
		<thread-max>10240</thread-max>
        <thread-idle-timeout>60s</thread-idle-timeout>
        <request-timeout>10s</request-timeout>
        <jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>
        <jvm-arg>-Dcom.sun.management.jmxremote.port=51519</jvm-arg>
        <jvm-arg>-Dcom.sun.management.jmxremote.ssl=false</jvm-arg>
        <jvm-arg>-Dcom.sun.management.jmxremote.authenticate=false</jvm-arg>
        <jvm-arg>-Xms512m</jvm-arg>
        <jvm-arg>-Xmx512m</jvm-arg>
        <jvm-arg>-Xmn256m</jvm-arg>
        <jvm-arg>-Xss1024k</jvm-arg>
        <jvm-arg>-XX:PermSize=256m</jvm-arg>
        <jvm-arg>-XX:MaxPermSize=512m</jvm-arg>
        <jvm-arg>-XX:SurvivorRatio=8</jvm-arg>
        <jvm-arg>-XX:MaxTenuringThreshold=8</jvm-arg>
        <jvm-arg>-XX:GCTimeRatio=19</jvm-arg>
        <socket-timeout>10s</socket-timeout>
        <keepalive-max>128</keepalive-max>
        <keepalive-timeout>15s</keepalive-timeout>
        <keepalive-connection-time-max>60s</keepalive-connection-time-max>
        <jvm-arg>-XX:+DisableExplicitGC</jvm-arg>
        <jvm-arg>-XX:+UseParNewGC</jvm-arg>
        <jvm-arg>-XX:+UseConcMarkSweepGC</jvm-arg>
        <jvm-arg>-XX:+CMSPermGenSweepingEnabled</jvm-arg>
        <jvm-arg>-XX:+UseCMSCompactAtFullCollection</jvm-arg>
        <jvm-arg>-XX:CMSFullGCsBeforeCompaction=0</jvm-arg>
        <jvm-arg>-XX:+CMSClassUnloadingEnabled</jvm-arg>
        <jvm-arg>-XX:-CMSParallelRemarkEnabled</jvm-arg>
        <jvm-arg>-XX:CMSInitiatingOccupancyFraction=70</jvm-arg>
        <jvm-arg>-XX:SoftRefLRUPolicyMSPerMB=0</jvm-arg>
        <jvm-arg>-XX:+PrintClassHistogram</jvm-arg>
        <jvm-arg>-XX:+PrintGCDetails</jvm-arg>
        <jvm-arg>-XX:+PrintGCTimeStamps</jvm-arg>
        <jvm-arg>-XX:+PrintGCApplicationConcurrentTime</jvm-arg>
        <jvm-arg>-XX:+PrintGCApplicationStoppedTime</jvm-arg>
        <jvm-arg>-XX:+HeapDumpOnOutOfMemoryError</jvm-arg>
        <jvm-arg>-Xloggc:gc.log</jvm-arg>
        <jvm-arg>-Xdebug</jvm-arg>
	<jvm-arg>-Xrunjdwp:transport=dt_socket,address=9989,server=y,suspend=n</
jvm-arg>
    </server-default>

    <server id="demo" address="127.0.0.1" port="6900">
    </server>

    <host id="" root-directory="/usr">
	<web-app id="/demo" root-directory="local/web/demo">
		<character-encoding>utf-8</character-encoding>
	</web-app>
    </host>

  </cluster>

然后重启resin

/usr/local/resin-4.0.40/bin/resin.sh  restart -server demo

/usr/local/resin-4.0.40/bin/resin.sh  restart -server hessian-server

出现报错:

错误: 代理抛出异常错误: java.net.MalformedURLException: Local host name unknown: java.net.U

nknownHostException: HTML5: HTML5: 未知的名称或服务

修改hosts文件,错误解决:

[root@HTML5 pages]# cat /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 HTML5

再次重启又报错:

[14-06-23 19:26:06.412] {resin-port-9080-51} Unable to find native library 'resin_os' for com.caucho.loader.ClassEntry. Resin expects to find this library in:

                         (Unix) /usr/local/resin-4.0.40/libexec64/libresin_os.so

                       On Unix, run ./configure --prefix=`pwd`; make; make install.

                       

                       The JVM exception was: java.lang.UnsatisfiedLinkError: no resin_os in java.library.path

 根据提示执行命令:./configure --prefix=`pwd`; make; make install

提示 make: command not found

执行命令:yum -y install gcc automake autoconf libtool make 安装该命令

再次执行./configure --prefix=`pwd`; make; make install

成功!

重启resin,两个应用都成功运行!

四.与Eclipse的集成

1. 3.7版本以上的Eclipse已经有resin server插件,window>>show views >>servers  进入servers面板后,鼠标右击new>server ,在New Server 对话框,找不到resin选项,然后就点击'Download additional server adapters' 选项,几秒钟后会弹出‘Install New Extension’对话框,有很多要下载的选项,选择'Resin (Java EE Web Profile) ,然后一路配置下去
 2.安装完插件,重启Eclipse,new server 选择resin,一路配置下去
 3.将工程添加进去,启动server即可
  

猜你喜欢

转载自haiziwoainixx.iteye.com/blog/2082298