java8jboss的简单介绍
华为云服务器特价优惠火热进行中! 2核2G2兆仅需 38 元;4核4G3兆仅需 79 元。购买时间越长越优惠!更多配置及优惠价格请咨询客服。
合作流程: |
今天给各位分享java8jboss的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
微信号:cloud7591如需了解更多,欢迎添加客服微信咨询。
复制微信号
本文目录一览:
什么是JBoss
什么是JBoss
以下内容出自互联网
解释1:
Jboss是 web服务器的一种,主要做ejb容器,和tomcat集成就可以jsp,servlet,ejb通吃了
Jboss有两种版本,一种是独立的,一种是和tomcat集成的,当然都是免费的啦
EJB(enterprise javabean),他不是javabean简单的升级,而是一些提供分布式访问的类
包括实体bean,会话bean,消息驱动bean
---------------------------------------------------------------
JBoss简介
JBoss是一个运行EJB的J2EE应用服务器。它是开放源代码的项目,遵循最新的J2EE规范。从JBoss项目开始至今,它已经从一个EJB容器发展成为一个基于的J2EE的一个web 操作系统(operating system for web),它体现了J2EE规范中最新的技术,并且它还在the JavaWorld Editors' Choice 2002评选中获得“最佳Java应用服务器”大奖。无论是学习还是应用,JBoss为我们提供了一个非常优秀的平台。有关JBoss的详细信息请参阅其主页。
刚开始使用JBoss进行EJB开发时,由于可供参考的资源不是很多,所以有一个比较困难的起步阶段。JBoss的配置和使用没有提供图形向导界面,所以开发部署EJB相对比较复杂。本文通过尽量具体的演示来对JBoss3.0下的EJB开发和部署的进行一个简单的介绍,从而使刚开始使用JBoss的用户可以很快地进入到真正的J2EE应用开发中。
Enterprise JavaBean (EJB)规范定义了开发和部署基于事务性、分布式对象应用程序的服务器端软件组件的体系结构。企业组织可以构建它们自己的组件,或从第三方供应商购买组件。这些服务器端组件称作 Enterprise Bean,它们是 Enterprise JavaBean 容器中驻留的分布式对象,为分布在网络中的客户机提供远程服务。
解释2:
JBoss是一个开源的符合J2EE规范的应用服务器,作为J2EE规范的补充,Jboss中引入了AOP框架,为普通Java类提供了J2EE服务,而无需遵循EJB规范。Jboss通过类载入时,使用Javassist对字节码操作实现动态AOP框架,Javassist是一个开源的编辑字节码的类库。
Jboss中参考,切入点与方面也由普通Java对象实现,并使用XML文件配置。Jboss的连接点模型与AspectJ略有不同,提供了一系列预定义的切入点,包括类匹配,方法调用,构造器调用,域访问,特定的调用与被调用关系。通过这些切入点的逻辑运算,可以实现更为复杂的切入点。方面为Java类,参考是其中的一个方法,方面中不含切入点,方面主要为各种拦截器(Interceptor),拦截器即为只含一个参考的方面,单一连接点上可由多个拦截器形成拦截器链,拦截器执行额外的操作。对方法的拦截由Advisor类管理,在连接点依次调用拦截器,并最终调用被逻辑的方法。而关于切入点,参考已及方面的信息由AspectManager管理。此外,Jboss提供对元数据的支持,用于为类,方法,构造器以及域添加额外的属性,并可在运行期访问。
为实现拦截,Jboss需要修改类的字节码,大致过程如下。
XML配置文件中关于切入点,拦截器,元数据以及混合类的信息在应用程序部署时被读入、解析,并生成相应的对象,这些信息与实例化的对象由AspectManager管理。在需要混入方面代码的类载入时,AspectManager将创建Advisor类,将方面相关信息传递给它,并对类的字节码进行修改,之后将修改过的字节码交给类载入器完成类的装载。字节码的修改主要是对被载入的类添加一系列方法用于代理那些匹配连接点的方法调用,构造器调用,域访问以及方法导入,转为对Advisor类相应方法的调用。类中各方法将重命名,保留原方法体,并添加一个与原方法同名的方法,在这个方法中调用那些代理方法,用来将调用代理给Advisor类,或调用重命名的原方法。对于域访问,分别添加两个方法,对应于读与写操作,将域访问代理至Advisor类,在访问这个域的类中,则需将对域的访问转换为对上述方法的调用。对于构造器调用,则添加一个方法,将调用代理至Advisor类,并对构造对象的类的构造代码作相应转换。对于导入,被导入的类中将添加一个混合类实现的引用,并添加混合类接口中的方法,将对混合类方法的调用代理至Advisor类,并最终调用混合类的实现。相关类载入后,初始化Advisor类,填入拦截器链,以完成整个处理过程。
一、JBoss简介
近年来,在J2EE应用服务器领域,JBoss是发展最为迅速的应用服务器。JBoss是免费的,开放源代码J2EE的实现,它通过LGPL许可证进行发布,这使得JBoss广为流行。Boss是一个运行EJB的J2EE应用服务器,例如:数据库访问JDBC、交易(JTA/JTS)、消息机制(JTS)、命名机制(JNDI)和管理支持(JMX)。它是开放源代码的项目,遵循最新的J2EE规范。目前的JBoss发布版2.2.4实现了EJB 1.1和部分EJB 2.0的标准、JMS 1.0.1、Servlet 2.2、JSP 1.1、JMX 1.0、JNDI 1.0、JDBC 1.2和2.0扩充(支持连接池 (Connection Polling))、JavaMail/JAF、JTA 1.0和JAAS1.0标准,JBoss是100%纯Java实现能运行于任何平台。
从JBoss项目开始至今,它已经从一个EJB容器发展成为一个基于的J2EE的一个web 操作系统(operating system for web),它体现了J2EE规范中最新的技术,并且它还在the JavaWorld Editors' Choice 2002评选中获得“最佳Java应用服务器”大奖。无论是学习还是应用,JBoss为我们提供了一个非常优秀的平台。
另外,JBoss应用服务器还具有许多优秀的特质:
它将具有革命性的JMX微内核服务作为其总线结构;
它本身就是面向服务的架构(Service-Oriented Architecture,SOA);
它还具有统一的类装载器,从而能够实现应用的热部署和热卸载能力。
因此,它是高度模块化的和松耦合的。JBoss用户的积极反馈告诉我们,JBoss应用服务器是健壮的、高质量的,而且还具有良好的性能。
二、JBoss的发展
为满足企业级市场日益增长的需求,JBoss公司从2003年开始就推出了24*7、专业级产品支持服务。同时,为拓展JBoss的企业级市场, JBoss公司还签订了许多渠道合作伙伴。在2004年6月,JBoss公司宣布,JBoss应用服务器通过了Sun公司的J2EE认证。 这是JBoss应用服务器发展史上至今为止最重要的里程碑。与此同时,JBoss一直在紧跟最新的J2EE规范, 而且在某些技术领域引领J2EE规范的开发。因此,无论在商业领域,还是在开源社区, JBoss成为了第一个通过J2EE 1.4认证的主流应用服务器。现在,JBoss应用服务器已经真正发展成具有企业强度(即,支持关键级任务的应用)的应用服务器。
近年来,Hibernate已经成为了事实上的持久化引擎。JBoss公司致力于将自身发展成为开源项目的社区,最新版的JBoss应用服务器已经将Hibernate集成为JMXMBean服务。这使得用户能够在应用服务器环境中直接使用Hibernate,而不管它是否处于J2EE上下文中。在最新版的JBoss应用服务器中,用户能够直接通过JMXMBean服务访问到JBossCache提供的服务。下一代的JBoss应用服务器(暂定名为,JBoss5.0)将提供大量的新功能。除了支持最新的EJB 3.0规范外,新版的JBoss AOP将同它正式发布。同时,JBoss开发团队还计划开发新的微内核层,即独立于JMX,使得它能够独立使用。
三、JBoss的服务器架构概述
JBoss的构架和其他J2EE应用服务器的构架有着巨大的不同。JBoss的模块架构是建立在JMX底层上的,下图展现了JBoss主要组件和JMX的联系。
JMX - 层次
JMX是一个可复用框架,它为远程(Remote)和本地(Local)管理工具扩展了应用。它的架构是层式架构。他们是实现层(instrumentation layer)、代理层(agent layer)和发布层(distribution layer)。其中,发布层还在等待未来的标准化。简要的表述是,用户使用管理Bean,MBean来提供获得相应资源的实现方法。实现层实现相关的特性资源并将它发布于JMX相关应用中,它的代理层控制和发布相应的注册在MBeanServer代理上的管理资源。 JBoss主要模块
主要的JBoss模块是在MeanServer上的可管理MBean。
1.JBoss EJB容器是JBoss服务器的核心实现。它有两个特性,第一是在运行期产生EJB 对象的Stub和Skeleton类,第二是支持热部署。
2.JBossNS是JBoss命名服务用来定位对象和资源。它实现了JNDI J2EE规范.
3.JBossTX 是由JTA/JTS支持的交易管理控制.
4.部署服务支持EJB(jar)、Web应用文档(war)和企业级应用文档(ears)的部署。它会时刻关心J2EE应用的URL情况,一旦它们被改变或出现的时候将自动部署。
5.JBossMQ使Java 消息规范(JMS)的实现。
6.JBossSX支持基于JAAS的或不支持JAAS机制的安全实现。
7.JBossCX实现了部分JCA的功能。JCA制订了J2EE应用组件如何访问基于连接的资源。
8.Web服务器支持Web容器和Servlet引擎。JBoss 2.4.x版本支持Tomcat 4.0.1,Tomcat 3.23和Jetty 3.x服务.
四、JBoss架构设计中的两个重要的特性
第一是使用JMX作为一个软件总线垂直的贯穿其所有的服务,通过将新的服务组件遵循JMX规范挂接上"总线",使得系统扩展现有的服务变得容易。可插入式框架被广泛的运用于服务的实现。开发者可以选择他们需要的服务并编写他们所需要的相应实现,通过定义在部署描述文件中,让JBoss服务器知道。
第二是容器被设计成为动态代理机制,这样使容器的实现变得简单和使开发者避免费劲的将jar文件进行预编译以获得stub和skeleton代码。但是这样做潜在的问题是性能和可测性,因为我们知道java反射机制会引起性能的损失。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上体现出来,方便查证修改。
《Java8实战》epub下载在线阅读,求百度网盘云资源
《Java 8实战》(厄马(Raoul-Gabriel Urma))电子书网盘下载免费在线阅读
链接:
提取码:1234
书名:Java 8实战
作者:厄马(Raoul-Gabriel Urma)
译者:陆明刚
豆瓣评分:9.2
出版社:人民邮电出版社
出版年份:2016-4-1
页数:349
内容简介:
本书全面介绍了Java 8 这个里程碑版本的新特性,包括Lambdas、流和函数式编程。有了函数式的编程特性,可以让代码更简洁,同时也能自动化地利用多核硬件。全书分四个部分:基础知识、函数式数据处理、高效Java 8 编程和超越Java 8,清晰明了地向读者展现了一幅Java 与时俱进的现代化画卷。
作者简介:
作者简介:
Raoul-Gabriel Urma
剑桥大学计算机科学博士,软件工程师,演讲者,培训师,Cambridge Coding Academy联合创始人、CEO。曾与谷歌、eBay、甲骨文和高盛集团等大公司合作,并参与过多个创业项目。撰写过十余篇经同行审阅的技术文章,并在国际会议上发表过40多篇演讲。
Mario Fusco
Red Hat高级软件工程师,负责JBoss规则引擎Drools的核心开发。拥有丰富的Java开发经验,曾领导媒体公司、金融部门等多个行业的企业级项目开发。对函数式编程和领域特定语言等有浓厚兴趣,并创建了开放源码库lambdaj。
Alan Mycroft
剑桥大学计算机实验室计算学教授,剑桥大学罗宾逊学院研究员,欧洲编程语言和系统协会联合创始人,树莓派基金会联合创始人和理事。发表过大约100篇研究论文,指导过20多篇博士论文。他的研究主要关注编程语言及其语义、优化和实施。他与业界联系紧密,曾于学术休假期间在ATT实验室和英特尔工作,还创立了Codemist公司,该公司设计了最初的ARM C编译器Norcroft。
我为什么放弃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启动速度很慢,该怎么解决
1.一个镜头变成了蓝色的天空没有 网络1,5分钟的延迟,当部署JMX-console.war可能表明(如3×30秒)的。尝试启动JBoss并将其绑定到特定IP的-b命令行或jboss.bind.address系统属性。另外,尽量让你的系统上确认你的主机和DNS解析设置是否正确。 JMX是RMI,你可能需要设置RMI服务器主机系统的性能。在Linux版本中,RMI有问题,查找正确和JMX-console.war可能会尝试连接到“错误的本地主机”。该系统属性java.rmi.server.hostname系统轨迹:如果没有帮助,您可能希望strace启动Java程序 CodeGo.net,所以你可以看到的地步了系统挂起(如果它确实因或类似挂起)。
2. 这是记录在天威很大的差距。我建议修改日志配置调试级别登录的一切,而不是信息。这将产生一个可怕的很多日志条目,但希望会帮助你缩小范围。 做到这一点最简单的方法是设置-Djboss.server.log.threshold=DEBUG当你启动JBoss系统属性
3. 你的怀疑对JMX控制台可能会产生误导。有可能是在做工作的背景无关的JMX控制台。根据我的经验,我们有一个问题,一个小的WAR文件似乎需要3分钟时间加载!它是无辜的。罪魁祸首,部分原因是许多war和罐子EAR文件。 虽然我不是专家,我建议如下: 1)尽量调高记录追查。这样一来,我亲眼目睹了部署者(EJBDeployer,我觉得)不必要的扫描war,我们的耳朵之一。然后我手动禁用那些WAR文件的扫描。 2)在启动过程中运行Wireshark的。我发现在等待来自外部的DTD请求的响应war文件被挂。这些网站要么现在不存在或不正确所服务的DTD文件到基于Java的程序。我可以用任何具有利用本地的DTD文件或本地镜像的DTD和具有本地的/ etc /主机回环加快步伐。
4. 我有这样一个问题,但我找到了一个很好的的初始和最大堆大小设置为值, -Xms512m -Xmx512m
有了这个,我是从4到2分钟出发改善
5.
您可以参考以下链接以避免不必要的注释扫描这有可能你的服务器启动
6.
我的JBoss 5.1.0用的MacBook Pro(主频2.26GHz 4GB),而不应用它在54秒开始
15:00:26,449 INFO [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221634)] Started in 54s:720ms
我做了基于“默认”的新配置。在JMS dataosurce指向一个Postgres数据库,而不是“Hypersonic数据库”(数据库)
7.
我想你已经开始在调试模式。此模式可高达3比正常模式更慢。
但也有可能是也是一个问题,从JDK5切换到JDK6的时候。我发现这个解决方案就在这里
我已经解决了。这是一个调试问题。我从改变了我的调试设置:
wrapper.java.additional.26=-Xdebug
wrapper.java.additional.27=-Xnoagent
wrapper.java.additional.28=-Djava.compiler=NONE
wrapper.java.additional.27=-Xrunjdwp:transport=dt_socket,address=7199,server=y,suspend=n
于:
wrapper.java.additional.26=-Xdebug
wrapper.java.additional.27=-Xrunjdwp:transport=dt_socket,address=7199,server=y,suspend=n
和JBoss快了。
希望这会有所帮助。
8.
你需要JMX的控制台应用程序?务实的事情是从服务器未部署它,你可以在JConsole的或者jvisualvm为基本的东西。
9.
见特别是“调整”的一部分。
10.
关闭批注扫描和你不需要其他函数
当您启动/从eclipse停止JBoss的,它不会清理和放大器;正常工作文件夹。设置外部工具配置并运行一个批处理文件来删除一切和放大器;每次启动前的工作文件夹。
我能够运行从15/20分钟的“默认”配置文件,以5分钟。
关于java8jboss和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
