jboss下载(jboss官网下载)
一、jboss 无法正常启动
长时间使用机器后,中间安装了一些开源软件,也更改过一些端口,导致JBOSS莫名其妙的不能启动。
第一步:启动后报error为,8083端口已经被占用。使用cmd查netstat-ano,因为JBOSS未能启动不能找到ipd为3660的端口使用。
于是计划分别查看修改oracle,mysql,tomcat,sql,weblogic端口号。
并且只修改JBOSS的空端口为8082.
重新启动后报错发现
ERROR [[/]] Exception sending context initialized event to listener instance of class org.jboss.web.jsf.integration.config.JBossJSFConfigureListener。并且跟随大量的deploy error。
第二步:网络上搜索资料,试图解决问题,但是大都文不对题。于是打算自己找问题。先从JBOSS官网上下载了最新的4.2.2版本,然后安装。重新修改%jboss_home%\server\default\conf下jboss_service.xml的8083为8082.并且修改环境变量的jboss_home以及拷贝mysql的jdbc包到jboss中去,修改相应的xml文件路径。全部改完后,再次启动发现问题一样。
第三步:大致上排除了jboss本身的问题,开始考虑jvm的问题。由于我主机上还有jdk1.6和jdk1.4,所以简单更换java_home为jdk1.6,可以正常启动。但是没有听说jdk1.5和jboss4.2有冲突。所以继续探究。
第四步:由于其他的基于java的工具都可以正常使用,jdk不应该少包,于是怀疑是多包。于是卸载jdk1.5,果然在%java_home%\jre\lib\ext下还剩余有包servlet-api.jar。看来就是这个多余的包造成的影响,自己也确曾有过直接往jdk内放包。然后装jdk1.5.4(没有找到updata6),更改环境变量,jboss正常启动。
第五步:将那个多余的包,重新放回,老问题又回来了。于是确定了问题所在。自己这个问题几乎查遍了google和百度,几乎没有好的解答。于是特意写下来给大家分享。
第六步:查servlet-api.jar是tomcat的一个包文件,在单纯使用tomcat开发jsp时需要引入。这里应该是和jboss的某个包文件冲突造成的。又证实同样的问题在weblogic也存在。
收获:
1,jboss确实不是一个好伺候的主子。
2,不要轻易往jvm内加包,可以在classpath上体现出来,方便查证修改。
二、我为什么放弃Jboss和Jboss社区
jboss在那个年代确实很火,很多大行的项目中都在使用jboss,我在过的两家支付公司就使用过jboss,在后来的一家支付公司我在推进去jboss化的工作。
从我了解到的情况,现在仍然在使用使用jboss的大概有这么几种情况
a.老系统就跑在jboss上,遗留项目,没人想动,没人敢动。
b.为了降低成本从weblogic或websphare迁移到jboss上
c.依然顽固不化不思进取的技术决策者(我已经不在顽固)
d.被销售人员忽悠的傻大憨粗的政府部门和国有企业
(2)jboss真的那么不堪吗? NO!
当然不是,从jboss 5-->jboss6-->jboss7--->wildfly(相当于jboss 7,8),一步一步都在进步,尤其是在jboss7,完全重写了jboss的所有,我还记得当初 jboss7 alpha1出来后,我完全看完了jboss 7源代码,jboss7各个模块的加载过程和加载机制,很壮观!
我的观点是:Jboss包括现在的wildfly在技术上是先进的,甚至要好于weblogic和websphare,但是,在理念上已经过时或者错误。
包括jboss(wildfly),weblogic,websphare在内所有的javaEE服务器,将所有的功能都集成进入服务器(jsf,jpa,ejb,jta,jms,jndi,jms,cache),但现实中在用的javaee服务器的功能有几个内,很多的项目都是只用到了一个servlet容器,但是还是将应用部署到了Jboss服务器里去了,我觉得一点没有必要。
我唱衰的不仅是jboss也包括 weblogic, websphare这样的java EE全栈服务器,如果一个简单的应用只需需要一个 servlet容器,但是仍然部署到jboss中的,有如下几个问题:
a.jboss启动需要占用更大的内存(jboss7以后按模块加载会好些),如果买云服务那内存可不便宜
b.jboss会在同时启动很多的端口(有端口洁癖的人心里很不爽)
c.配置复杂,在配置上花的时间和精力有可能比在代码业务逻辑上花的时间还多。
d.jboss性能不及tomcat,jboss性能好过tomcat那是销售的外交辞令,只要会调优tomcat性能会好过jboss的。
e.jboss提供的负载均衡器mod_cluster虽然智能但是性能不会好过nginx。jboss+mod_cluster我认为不如果 tomcat+nginx
(3)我对jboss社区的反感:
jboss社区人文环境其实不错,但有一点我不喜欢,那就是"自恋"
jboss社区什么都想使用社区以有的项目,社区的其他项目都喜欢依赖jboss社区的其他项目,我知道他们想打造生态系统,但是没有本着简约的理念来做。
比如:HornetQ默认使用jboss-logging包,输出日志,infinispan也是这样,ovirt.org项目使用jboss作为服务器,太依赖fedora,你能用tomcat为什么非要用jboss,是为了用而用,ovirt项目中使用jboss使用ejb3.1,导致很多不喜欢ejb的社区开发人员不贡献,只能靠红帽提供支持的开发人员推进项目。
jboss更名:将jboss更名为wildfly官方的说法是问了人们更好的区分jboss社区版和企业版,现在jboss名称默认是指jboss EAP,开源版才叫 wildfly,我觉得这个馊主意一定是红帽销售人员出的,为了能让jboss企业版买的更好而将jboss社区版更名为wildfly,这是愚蠢的做法,现在越来越少的人知道wildfly,我认为开发人员对这点是反感的至少我是。
三、jboss 4 jboss5 jboss6 jboss7 目前那个版本比较好
现在正是要从4.0.5升级到7,我觉得大有不妥,可是安排是这样,下面的兄弟有什么办法呢?
总结了一些东西。
5的启动速度有明显提高,功能上也有很多增加。6支持更多的功能,速度也有量的变化。
7个人觉得毕竟不是很成熟,而且版本跨越太多必定增加升级难度,追求高版本也是个华而不实的举措。
其实只有合适,功能够用就行了。建议选择5或者6。希望对你有所帮助。