j2ee服务器有哪些
众所周知,J2EE应用服务器百花齐放,种类众多。那么J2EE应用服务器有哪些又有哪些功能呢一起来看看吧!
从功能实现上划分:
有实现完整J2EE规范(full profile)的Weblogic, WebSphere, GlassFish
有实现web应用规范(web profile)的 TomEE, JBoss/WildFly
有基本的Servlet及Jsp规范的Web容器(Web Container) Tomcat, Jetty, Resin
回顾过去的2015年,各应用服务器市场占有率各有千秋。
下图为各个应用服务器使用率饼图
我们看到,在众多J2EE应用服务器中,Tomcat使用率达到5866%,稳坐第一。
相较2014年,Tomcat使用率大幅增长,增长将近19%。
整体而言,Tomcat做为Servlet和Jsp规范的参考实现(Reference implementation , 简称RI),一般都会在第一时间实现规范的新特性并通过Oracle的CTS 测试认证。目前最新的Tomcat 90,虽还是alpha版,但已经实现了Servlet 40草案,感兴趣的朋友,可以下载尝鲜哦!
Tomcat是一个实现了JAVA EE标准的最小的WEB服务器,是Apache 软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且开源免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。学习JavaWeb开发一般都使用Tomcat服务器,该服务器支持全部JSP以及Servlet规范,启动界面如图:
Tomcat 是一款非常优秀的 Java Web 服务器,以致于很多开源 Java 应用服务器(如 JOnAS) 直接集成它作为 servlet 容器。
Tomcat的总体结构
Tomcat中主要涉及Server,Service,Engine,Connector,Host,Context组件,之前用过Tomcat的童鞋是不是觉得这些组件的名称有点似曾相识的赶脚,没赶脚!您再想想。好吧,不用你想了,我来告诉你吧。其实在Tomcat二进制分发包解压后,在conf目录中有一个serverxml文件,你打开它瞄两眼看看,是不是发现serverxml文件中已经包含了上述的几个名称。
Tomcat 集群源码的类图
从图中我们可以看出 Tomcat 集群包括以下几个方面的内容:
Session: Session 分为 StandardSession 与ClusterSession 两种,后者用于 Session 复制。
Session Manager: 有用于集群 Session 管理的ClusterSession,也有用于对 Session 进行一般日常管理的,如 PersistentManager,BackupManager,SimpleTcpReplicationManager。
组通迅框架:SessionManager调用组通讯框架进行 Session 的传输,Tomcat采用的组通
讯框架是 tribe,目前 tribe 已被独立为开放的 apache 工程。
Cluster: 方便集群管理而派生出的逻辑概念,可将实际物理机划分为一个 Cluster,也可 将一台物理机上不同端口的实例划分为一个 Cluster,它有一个简单的实现类 SimpleTcpCluster。
11 Session
服务器集群通常 *** 纵两种session:
1 Stickysessions: 尽量让同一个客户请求由同一台服务器来处理,这样 sticky sessions 就是 存在于单机服务器中接受客户端请求的 session,它不需要进行 Session 复制,如果这个 单机失败的话,用户必须重新登录网站。
2 Replicatedsessions: 在一台服务器中的 session 状态被复制到集群的其他服务器上,无论 何时,只要 session 改变了,session 数据都要重新全部或部分(依据复制策略)被复制 到其他服务器上。
Tomcat 支持以下三种 session 持久性类型:
1 内存复制:在 JVM 内存中复制 session状态,使用 Tomcat自带的 SimpleTcpCluster 和SimpleTcpClusterManager类。
2 数据库持久性:在这种类型中,session 状态保存在一个关系数据库中,服务器使用orgapachecatalinasessionJDBCManager类从数据库中获取 Session 信息。
3 基于文件的持久性:这里使用类orgapachecatalinasessionFileManager 把session 状态保存到一个文件系统。
Session Manager
Tomcat 通过 orgapachecatalinaManager 来管理 Session,Manager 接口总是和 Context Container 相关联。它主要负责 session 的建立、更新和销毁。该接口中一些重要的方法有:
用户在 Servlet 中通过 javaxservlet>
无法验证更新,通常都是网络问题。
验证过程:MAC或者padOS以及IOS,在下载完更新文件后,会连接到Apple服务器来验证这个固件是否兼容该设备以及固件是否被损坏,以确保安装后设备能正常使用。
为什么会失败:因为Apple服务器高度频繁在响应验证及其他请求,那么对于网络质量要求是很高的。网络稍微不稳定就会出现验证失败的情况。
解决方法:切换网络:wifi切换到有限。或者在有条件的情况下接入其他wifi。最有效的是使用手机开热点进行验证。
希望能帮助到您!
1端口被占用(使用Fportexe查看本机上哪些端口被哪些程序使用了)
2tomcat的运行需要JVM的支持,startupbat启动的时候,会看系统有没有配java_home环境变量。如果没配,启动的时候界面很快会自动关闭,我们可以开启dos窗口,把startupbat拖进去,回车运行即可看到报错信息。
3tomcat在启动的时候还需要另外一个很重要的环境变量Catalina_home。这个环境变量指的就是tomcat服务器所在的目录,启动startupbat的时候,startupbat就自己设了Catalina_home这个环境变量,这个环境变量指向的就是这个tomcat服务器所在的目录。Catalina_home指向哪台tomcat,那么就启动哪台服务器。如果我们在系统环境变量中配置了Catalina_home,那么不管你启动哪台tomcat中的startupbat,启动的都是Catalina_home指向的哪台tomcat服务器。
一句话:如果系统环境变量没有配置Catalina_home,那么双击哪台tomcat中的startupbat就启动哪台服务器,反之,启动的就是系统环境变量Catalina_home中指向的tomcat服务器。猜测是端口绑定冲突了。
首先你看看配置文件,关于端口设置方面有没有冲突(定义相同端口的服务);
另外,是不是有其他使用端口的软件提前占用了例如WebSphere;
最后,你开启tomcat的用户权限如何,有没有绑定端口的权限。
以上如果没问题,再检查tomcat连接数据库方面。看看数据库以及连接池等方面有没有问题,包括数据库连接池的存活时间等。
顺序同上。
这个问题还涉及到你tomcat运行时如何,怎么死机等问题,所以比较复杂。需要更多信息,如tomcat日志等才好分析。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)