发布网友 发布时间:2024-09-08 01:40
共1个回答
热心网友 时间:2024-12-14 14:02
j2ee服务器有哪些众所周知,J2EE应用服务器百花齐放,种类众多。那么J2EE应用服务器有哪些?又有哪些功能呢?一起来看看吧!
从功能实现上划分:
有实现完整J2EE规范(fullprofile)的Weblogic,WebSphere,GlassFish
有实现web应用规范(webprofile)的TomEE,JBoss/WildFly
有基本的Servlet及Jsp规范的Web容器(WebContainer)Tomcat,Jetty,Resin
回顾过去的2015年,各应用服务器市场占有率各有千秋。
下图为各个应用服务器使用率饼图
我们看到,在众多J2EE应用服务器中,Tomcat使用率达到58.66%,稳坐第一。
相较2014年,Tomcat使用率大幅增长,增长将近19%。
整体而言,Tomcat做为Servlet和Jsp规范的参考实现(Referenceimplementation,简称RI),一般都会在第一时间实现规范的新特性并通过Oracle的CTS测试认证。目前最新的Tomcat9.0,虽还是alpha版,但已经实现了Servlet4.0草案,感兴趣的朋友,可以下载尝鲜哦!
Tomcat是一个实现了JAVAEE标准的最小的WEB服务器,是Apache软件基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。因为Tomcat技术先进、性能稳定,而且开源免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。学习JavaWeb开发一般都使用Tomcat服务器,该服务器支持全部JSP以及Servlet规范,启动界面如图:
?
Tomcat是一款非常优秀的JavaWeb服务器,以致于很多开源Java应用服务器(如JOnAS)直接集成它作为servlet容器。
Tomcat的总体结构
Tomcat中主要涉及Server,Service,Engine,Connector,Host,Context组件,之前用过Tomcat的.童鞋是不是觉得这些组件的名称有点似曾相识的赶脚,没赶脚?!您再想想。好吧,不用你想了,我来告诉你吧。其实在Tomcat二进制分发包解压后,在conf目录中有一个server.xml文件,你打开它瞄两眼看看,是不是发现server.xml文件中已经包含了上述的几个名称。
Tomcat集群源码的类图
从图中我们可以看出Tomcat集群包括以下几个方面的内容:
Session:Session分为StandardSession与ClusterSession两种,后者用于Session复制。
SessionManager:有用于集群Session管理的ClusterSession,也有用于对Session进行一般日常管理的,如PersistentManager,BackupManager,SimpleTcpReplicationManager。
组通迅框架:SessionManager调用组通讯框架进行Session的传输,Tomcat采用的组通
讯框架是tribe,目前tribe已被独立为开放的apache工程。
Cluster:方便集群管理而派生出的逻辑概念,可将实际物理机划分为一个Cluster,也可将一台物理机上不同端口的实例划分为一个Cluster,它有一个简单的实现类SimpleTcpCluster。
1.1Session
服务器集群通常操纵两种session:
1.Stickysessions:尽量让同一个客户请求由同一台服务器来处理,这样stickysessions就是存在于单机服务器中接受客户端请求的session,它不需要进行Session复制,如果这个单机失败的话,用户必须重新登录网站。
2.Replicatedsessions:在一台服务器中的session状态被复制到集群的其他服务器上,无论何时,只要session改变了,session数据都要重新全部或部分(依据复制策略)被复制到其他服务器上。
Tomcat支持以下三种session持久性类型:
1.内存复制:在JVM内存中复制session状态,使用Tomcat自带的SimpleTcpCluster和SimpleTcpClusterManager类。
2.数据库持久性:在这种类型中,session状态保存在一个关系数据库中,服务器使用org.apache.catalina.session.JDBCManager类从数据库中获取Session信息。
3.基于文件的持久性:这里使用类org.apache.catalina.session.FileManager把session状态保存到一个文件系统。
SessionManager
Tomcat通过org.apache.catalina.Manager来管理Session,Manager接口总是和ContextContainer相关联。它主要负责session的建立、更新和销毁。该接口中一些重要的方法有:
用户在Servlet中通过javax.servlet.http.HttpServletRequest接口的getSession方法获得Session,而该接口的实现位于org.apache.catalina.connector.Request类中的doGetSession方法中,在该方法中通过org.apache.catalina.Manager来获得Session,doGetSession方法的部分代码如下:
组通讯框架--Tribe
组通讯框架Tribe在Tomcat中的位置可如下图
如图所示,Tribe的核心主要是Channel类,由此看出,它采用NIO进行Socket通讯,运用
了组播,事件、心跳检测等技术,下面我们来着重看看代码中Tomcat是如何与Tribe衍接首先在SimpleTcpReplication类中的实现Manager接口的start方法中:
Cluster
Cluster用于管理集群中的Session复制,它有一个简单的实现类SimpleTcpCluster。
在CentOS7上安装Tomcat9的方法教程CentOS是Linux发行版之一,它是来自于RedHatEnterpriseLinux依照开放源代码规定释出的源代码所编译而成。接下来是我为大家收集的在CentOS7上安装Tomcat9的方法教程,希望能帮到大家。
在CentOS7上安装Tomcat9的方法教程
1通过SecureCRT连接到阿里云CentOS7服务器;
2进入到目录/usr/local/中:
cd/usr/local/
3创建目录/usr/local/tools,如果有则忽略:
mkdir-ptools
4创建/usr/local/tomcat目录,如果已存在则忽略:
mkdir-ptomcat
5进入到目录/usr/local/tools中:
cdtools/
6下载apache-tomcat-9.0.0.M4.tar.gz文件:
wget
7解压缩apache-tomcat-9.0.0.M4.tar.gz:
tar-zxvfapache-tomcat-9.0.0.M4.tar.gz
8将通过解压得到的apache-tomcat-9.0.0.M4文件复制到/usr/local/tomcat目录中:
mvapache-tomcat-9.0.0.M4../tomcat/
9打开文件/etc目录下的profile文件:
vim/etc/profile
将如下代码追加到profile文件末尾:
#idea-tomcat9configstart-2016-05-01
CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M4
CATALINA_BASE=/usr/local/tomcat/apache-tomcat-9.0.0.M4
PATH=$PATH:$CATALINA_BASE/bin
exportPATHCATALINA_BASE
#idea-tomcat9configend-2016-05-01
保持并推出:wq!
10修改tomcat的端口号和字符编码:
进入到/usr/local/tomcat/apache-tomcat-9.0.0.M4/conf目录中:
cd../tomcat/apache-tomcat-9.0.0.M4/conf
打开tomcat服务的配置文件server.xml:
viserver.xml
找到如下代码:
将其中的8080改成HTTP协议的默认端口80,改后的代码如下:
11增加manager-gui图形化管理界面的访问权限(不需要的话,此步骤可忽略):
打开tomcat的用户配置文件tomcat-users.xml:
vitomcat-users.xml
在标签前加入如下代码:
这里设置的username和password都是password,角色为manager-gui;
键入Esc并输入“:wq!”保持并退出;
12进入到/usr/local/tomcat/apache-tomcat-9.0.0.M4/bin目录中:
cd../bin/
13打开vicatalina.sh文件:
在#OSspecificsupport.前面加入如下代码:
JAVA_HOME=/usr/local/jdk/jdk1.8.0_91
JRE_HOME=$JAVA_HOME/jre
键入Esc并输入“:wq!”保持并退出;
14启动tomcat服务:
./startup.sh
打印如下信息则表明启动Tomcat服务成功:
UsingCATALINA_BASE:/usr/local/tomcat/apache-tomcat-9.0.0.M4
UsingCATALINA_HOME:/usr/local/tomcat/apache-tomcat-9.0.0.M4
UsingCATALINA_TMPDIR:/usr/local/tomcat/apache-tomcat-9.0.0.M4/temp
UsingJRE_HOME:/usr/local/jdk/jdk1.8.0_91/jre
UsingCLASSPATH:/usr/local/tomcat/apache-tomcat-9.0.0.M4/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-9.0.0.M4/bin/tomcat-juli.jar
Tomcatstarted.
打开浏览器输入IP地址看看吧!如果出现了我们的可爱的“小黄猫”则表明我们的Tomcat已提供服务啦!
15关闭tomcat服务:
./shutdown.sh
打印如下信息则表明关闭Tomcat服务成功:
UsingCATALINA_BASE:/usr/local/tomcat/apache-tomcat-9.0.0.M4
UsingCATALINA_HOME:/usr/local/tomcat/apache-tomcat-9.0.0.M4
UsingCATALINA_TMPDIR:/usr/local/tomcat/apache-tomcat-9.0.0.M4/temp
UsingJRE_HOME:/usr/local/jdk/jdk1.8.0_91/jre
UsingCLASSPATH:/usr/local/tomcat/apache-tomcat-9.0.0.M4/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-9.0.0.M4/bin/tomcat-juli.jar
注意:不可连续执行多次./shutdown.sh命令,多次后报如下错误:
SEVERE:Catalina.stop:
java.net.ConnectException:Connectionrefused
atjava.net.PlainSocketImpl.socketConnect(NativeMethod)
atjava.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
atjava.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
atjava.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
atjava.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
atjava.net.Socket.connect(Socket.java:589)
atjava.net.Socket.connect(Socket.java:538)
atjava.net.Socket.(Socket.java:434)
atjava.net.Socket.(Socket.java:211)
atorg.apache.catalina.startup.Catalina.stopServer(Catalina.java:476)
atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)
atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
atjava.lang.reflect.Method.invoke(Method.java:498)
atorg.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:408)
atorg.apache.catalina.startup.Bootstrap.main(Bootstrap.java:497)
16将tomcat9加入到系统服务列表中:
进入到/etc/init.d目录中:
cd/etc/init.d
创建tomcat9服务配置文件:
vitomcat9
将如下代码加入写入到tomcat9配置文件中:
#idea-tomcatconfigstart-2016-05-01
#!/bin/bash
#description:TomcatStartStopRestart
#processname:tomcat
#chkconfig:23452080
JAVA_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M4/
exportJAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
exportPATH
CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M4/
case$1in
start)
sh$CATALINA_HOME/bin/startup.sh
;;
stop)
sh$CATALINA_HOME/bin/shutdown.sh
;;
restart)
sh$CATALINA_HOME/bin/shutdown.sh
sh$CATALINA_HOME/bin/startup.sh
;;
esac
exit0
#chmod755tomcat
#chkconfig--addtomcat
#chkconfig--level2345tomcaton
#chkconfig--listtomcat
#idea-tomcatconfigend-2016-05-01
键入Esc并输入“:wq!”保持并退出;
其中的注意点是将JAVA_HOME和CATALINA_HOME变量设置成与我们当前配置相一致的路径;
17为tomcat9分配可执行权限:
chmod+xtomcat9
18将tomcat9纳入到系统的服务列表中,即添加tomcat9为系统服务:
chkconfig--addtomcat9
19查看当前系统服务都有哪些:
chkconfig--list
也可以查看指定的系统服务,如这里我们指定tomcat9这个服务:
chkconfig--listtomcat9
打印如下信息:
tomcat90:off1:off2:on3:on4:on5:on6:off
则表明已将tomcat9设置为系统服务,2、3、4、5都为on表示可随系统自动启动;
20我们可以在任意目录下执行关闭、启动、重启Tomcat9服务啦:
20.1关闭tomcat9服务:
servicetomcat9stop
20.2启动tomcat9服务:
servicetomcat9start
20.3重启tomcat9服务:
servicetomcat9restart
后记:
linux系统中的/etc目录表示“设备”,意为与硬件设备相关的信息;
/etc/init.d目录下的文件表示当前设备的初始化配置信息;
命令chkconfig表示添加(--add)、删除(--del)、查看(--list)系统服务;
看了“在CentOS7上安装Tomcat9的方法教程”还想看:
1.CentOS7安装配置图文教程
2.在CentOS7中配置NIC绑定教程
3.CentOS7设置网络自动启动教程
4.Tomcat7.0的安装与配置
5.centos7快速启动应用程序教程
如何在CentOS7上安装Tomcat91通过SecureCRT连接到阿里云CentOS7服务器;
2进入到目录/usr/local/中:
cd/usr/local/
3创建目录/usr/local/tools,如果有则忽略:
mkdir-ptools
4创建/usr/local/tomcat目录,如果已存在则忽略:
mkdir-ptomcat
5进入到目录/usr/local/tools中:
cdtools/
6下载apache-tomcat-9.0.0.M4.tar.gz文件:
wget
7解压缩apache-tomcat-9.0.0.M4.tar.gz:
tar-zxvfapache-tomcat-9.0.0.M4.tar.gz
8将通过解压得到的apache-tomcat-9.0.0.M4文件复制到/usr/local/tomcat目录中:
mvapache-tomcat-9.0.0.M4../tomcat/
9打开文件/etc目录下的profile文件:
vim/etc/profile
将如下代码追加到profile文件末尾:
#idea-tomcat9configstart-2016-05-01
CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M4
CATALINA_BASE=/usr/local/tomcat/apache-tomcat-9.0.0.M4
PATH=$PATH:$CATALINA_BASE/bin
exportPATHCATALINA_BASE
#idea-tomcat9configend-2016-05-01
保持并推出:wq!
10修改tomcat的端口号和字符编码:
进入到/usr/local/tomcat/apache-tomcat-9.0.0.M4/conf目录中:
cd../tomcat/apache-tomcat-9.0.0.M4/conf
打开tomcat服务的配置文件server.xml:
viserver.xml
找到如下代码:
将其中的8080改成HTTP协议的默认端口80,改后的代码如下:
11增加manager-gui图形化管理界面的访问权限(不需要的话,此步骤可忽略):
打开tomcat的用户配置文件tomcat-users.xml:
vitomcat-users.xml
在标签前加入如下代码:
这里设置的username和password都是password,角色为manager-gui;
键入Esc并输入“:wq!”保持并退出;
12进入到/usr/local/tomcat/apache-tomcat-9.0.0.M4/bin目录中:
cd../bin/
13打开vicatalina.sh文件:
在#OSspecificsupport.前面加入如下代码: