一.简介
Resin3 之后已经不再是一个简单的jsp容器,并且支持ejb,jta等企业功能。resin4 (2010年后已经比较稳定)性能更是优秀。并且已经支持servlet 3.0标准. pro版本是收费版本,支持负载均衡和文件缓存。很多大型门户网站都采用pro版本作为应用服务器.
出现以上界面,表示启动成功
先创建一个用户名密码
<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>即可发布项目
原因是centos linux,默认可以采用yum方式安装,则采用如下命令安装gcc编译器即可
[root@HTML5 resin-4.0.40]# yum -y install gcc
再次运行配置成功!
3.启动resin
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的集成