仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1047|回复: 18
打印 上一主题 下一主题

[学习教程] JAVA网站制作之剖析GlassFish 3中的设置组件仓酷云

[复制链接]
爱飞 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:29:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
市场分额,java比asp高一点,因为C#是仿照java开发的,所以哦C#能做的java都能做到,但是java能做的,C#不一定都能做到。毕竟是抄袭吗。在GlassFish3中,存在大批的组件,作者具体剖析了其组件设置的架构、工具和使用办法,关于想要深切懂得GlassFish的开辟职员和体系办理职员有较好的自创意义。
1设置组件研讨

在GlasFish中,有大批的设置文件,很年夜一部分是主动发生的,为助于了解,我们有需要先将它吃透。它也有一个主域设置文件(位于%GlassFishV3%domainsdomain1configconfig.xml),它次要包含以下几个部分:

<br>
GlassFishconfig设置办理组件的构成


  • ConfigBeans:关于对设置文件的elements、attributes、properties实行get/set/create/delete操纵,是一个底层API
  • AdminMBeans:JMX客户端API,包含:GUI/CLI/HTMLadapters/remoteapps
  • AdminValidator:考证设置,而且避免分歧法的设置改动
  • Dynamic-reconfig:从头设置以后,能够不必重启服务器,及时失效
1.1设置元数据

在glassfish的config-api模块中包括了大批的设置元数据,有些是主动发生的,有些是手动发生的。

<br>
设置元数据
设置文件切合以下三个schema,这些schema主RelaxNG语法来举行属性扩大,一切的属性扩大在其自力的名空间中:


  • sun-domain-1_2.dtd,
  • ConfigBeans
  • ValidationDescriptorsfile
1.2源代码剖析



  • ConfigBeans:代码位于HK2核中的config模块,它包括了ConfigContext、ConfigEvent、Listeners的接口和完成。在GlassFish中的config-api模块中的serverbeans是由sun-domain_1_2.dtd主动发生的,手动发生的是ApplicationsHelper,ClustersHelper,ResourcesHelper等。
  • AdminMBeans:供应JMX客户端(CLI/GUI/HTML-adapters/remoteapis)的会见和办理操纵。位于admin-core中的admin子模块中。
  • ConfigValidator:考证metadatafiles,考证基本类,对客户化设置元素的考证等。
2监控组件研讨

我们能够经由过程以下5种体例会见GlassFish资本:


  • 办理把持台
  • 命令行工具asadmin
  • Jconsole第三方工具
  • 尺度的JMX编程接口
  • 面向对象的AMX编程接口
JMX是GlassFish办理架构的基本,GlassFish的计划和完成都遵守了JMX标准,因而也完整撑持JMX。这类撑持表现在它的命令行办理工具asadmin和办理把持台的功效上,表现在第三方办理工具好比JConsole的对其会见的撑持上,也表现在经由过程尺度的或GlassFish独有的编程接口AMX对其资本的会见体例上。上面经由过程实例,来看看GlassFish是怎样撑持这几种体例对其资本举行会见的。

<br>
会见GlassFish资本的5种体例
办法1,经由过程办理把持台
起首,先经由过程办理把持台来创立一个数据库毗连池mypool。在扫瞄器的输出办理把持台地点:localhost:4848。接纳缺省的用户名“admin”及其暗码“adminadmin”登录。乐成登录后,在右边的树型菜单中,睁开“资本”-“JDBC”-“毗连池”。在主面板中,点击“新建”。在面板“新建JDBC毗连池(步骤1,共2步)”中,输出“称号”为mypool,“资本范例”选为“javax.sql.DataSource”,“数据库供给商”选为“JavaDB”。在接下来的“新建JDBC毗连池(步骤2,共2步)”中,能够看到数据库毗连池的各项缺省设置。将在“池设置”一栏中的“余暇超时”值由缺省的300改成777。点击“完成”。至此,我们经由过程办理把持台完成了对数据库毗连池mypook的创立,并修正了其余暇超时的值。
办法2,经由过程命令行工具asadmin
接上去,我们经由过程命令行的asadmin来检察这一资本。
  1. asadminlistserver.resource*
复制代码
运转了局以下:
  1. server.resource-ref.jdbc/__CallFlowPoolserver.resource-ref.jdbc/__TimerPoolserver.resource-ref.jdbc/__defaultserver.resourcesserver.resources.jdbc-connection-pool.DerbyPoolserver.resources.jdbc-connection-pool.__CallFlowPoolserver.resources.jdbc-connection-pool.__TimerPoolserver.resources.jdbc-connection-pool.mypoolserver.resources.jdbc-resource.jdbc/__CallFlowPoolserver.resources.jdbc-resource.jdbc/__TimerPoolserver.resources.jdbc-resource.jdbc/__default
复制代码
这里列出的MBean是用GlassFish本人的DottedName来标识的。接着经由过程asadmin的子命令get来检察对象mypool的属性:
  1. asadmingetserver.resources.jdbc-connection-pool.mypool.*
复制代码
大概进一步检察余暇超时(idle-timeout-in-seconds)的属性值。
  1. asadmingetserver.resources.jdbc-connection-pool.mypool.idle-timeout-in-seconds
复制代码
了局以下:
  1. server.resources.jdbc-connection-pool.mypool.idle-timeout-in-seconds=777
复制代码
至此,我们完成了利用命令行的办理工具asadmin对mypool的会见。这里asadmin经由过程GlassFish扩大的DottedName定名体例来会见MBean的。DottedName是GlassFish命令行工具asadmin界说的一套商定。在这套商定的撑持下,asadmin的三个子命令(list、set和get)能够经由过程一个由“.”分开的字串寻址到GlassFish中的MBean。
办法3,经由过程第三方工具JConsole
接上去,我们要经由过程JConsole来会见对象mypool。在JConsole的登录面板中,选择远处历程:localhost:8686(8686是GlassFish缺省的办理端口),用户名一样为admin,暗码adminadmin。登录出去后所看到的是关于GlassFish使用服务器运转时的信息,点击“MBean”。睁开树型布局“com.sun.appserv”-“jdbc-connection-pool”-“mypool”-“config”-“属性”。能够看到我们所体贴的毗连池mypool的信息。属性idle-timeout-in-seconds的值为777。修正777为888。在回到办理把持台或命令行工具asadmin一样能够看到方才在JConsole所作的修正已失效。以上申明三种工具对GlassFish资本的修正是等效的。接上去经由过程编程的体例来会见数据库毗连池mypool。
办法4,经由过程尺度的JMX编程体例
尺度的JMX体例的代码以下:
  1. importjavax.management.*;importjavax.management.remote.*;publicclassJMX_demo{publicJMX_demo()throwsException{//创立JMX的URLJMXServiceURLurl=newJMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:8686/jmxrmi");java.util.Mapenv=newjava.util.Hashtable();//缺省用户名和其口令String[]creds={"admin","adminadmin"};env.put(JMXConnector.CREDENTIALS,creds);//创建毗连JMXConnectorconnector=JMXConnectorFactory.connect(url,env);MBeanServerConnectionmbsc=connector.getMBeanServerConnection();//要会见的MBean的ObjectNameObjectNamembeanName=newObjectName("com.sun.appserv:type=jdbc-connection-pool,name=mypool,category=config");//所要会见的属性idle-timeout-in-secondsSystem.out.println("UsingJMX,jdbcpoolidletimeout:"+mbsc.getAttribute(mbeanName,"idle-timeout-in-seconds"));}publicstaticvoidmain(finalString[]args)throwsException{newJMX_demo();}}
复制代码
运转了局以下:
  1. UsingJMX,jdbcpoolidletimeout:888
复制代码
办法5,经由过程AMX编程体例
AMX体例的代码以下:
  1. importcom.sun.appserv.management.DomainRoot;importcom.sun.appserv.management.client.AppserverConnectionSource;importcom.sun.appserv.management.client.TLSParams;importcom.sun.appserv.management.util.misc.ExceptionUtil;importcom.sun.appserv.management.config.*;importjava.net.ConnectException;importjava.util.Map;/***此类为演示利用AMX体例会见服务器真个MBean的演示代码。*/publicclassAMX_demo{publicAMX_demo()throwsException{//DomainAdminServer的呆板名或IP地点finalStringhost="localhost";//JMX办理端口,缺省8686。finalintport=8686;//办理员名finalStringuser="admin";//办理员暗码finalStringpassword="adminadmin";TLSParamstlsParams=null;//毗连到JMXserverAppserverConnectionSourceconn=newAppserverConnectionSource(AppserverConnectionSource.PROTOCOL_RMI,host,port,user,password,tlsParams,null);conn.getJMXConnector(true);//DomainRoot和JDBCConnectionPoolConfig就是所说的DCP组件DomainRootmDomainRoot=conn.getDomainRoot();//猎取JDBCConnectionPool的列表Mappools=mDomainRoot.getDomainConfig().getJDBCConnectionPoolConfigMap();JDBCConnectionPoolConfigmypool=(JDBCConnectionPoolConfig)pools.get("mypool");System.out.println("UsingDCP,jdbcpoolidletimeout:"+mypool.getIdleTimeoutInSeconds());}publicstaticvoidmain(finalString[]args)throwsException{newAMX_demo();}}
复制代码
运转了局以下:
  1. UsingDCP,jdbcpoolidletimeout:888
复制代码
注重,接纳AMX的体例时,在项目标库路径上要到场appserv-ext.jar和javaee.jar。
关于作者

张华,临时处置Java方面的开辟事情,有搜刮引擎、两头件使用服务器、互联网、云盘算等范畴的行业履历,今朝正在处置基于Power的假造化手艺研发。博客地点:http://blog.csdn.net/quqi99

由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,
变相怪杰 该用户已被删除
沙发
发表于 2015-1-21 07:50:04 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
再现理想 该用户已被删除
板凳
发表于 2015-1-30 07:33:54 | 只看该作者
是一种使用者不需花费很多时间学习的语言
因胸联盟 该用户已被删除
地板
发表于 2015-2-3 12:50:54 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
小妖女 该用户已被删除
5#
发表于 2015-2-4 08:50:33 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
活着的死人 该用户已被删除
6#
发表于 2015-2-9 20:49:54 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
乐观 该用户已被删除
7#
发表于 2015-2-27 08:26:42 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
愤怒的大鸟 该用户已被删除
8#
发表于 2015-3-1 13:47:53 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
admin 该用户已被删除
9#
发表于 2015-3-3 20:31:29 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
10#
发表于 2015-3-4 11:08:49 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
不帅 该用户已被删除
11#
发表于 2015-3-6 04:04:06 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
精灵巫婆 该用户已被删除
12#
发表于 2015-3-28 22:05:48 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
金色的骷髅 该用户已被删除
13#
发表于 2015-3-29 14:11:57 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
海妖 该用户已被删除
14#
发表于 2015-4-1 07:45:51 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
再见西城 该用户已被删除
15#
发表于 2015-4-8 22:24:11 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
兰色精灵 该用户已被删除
16#
发表于 2015-4-22 14:11:14 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
小魔女 该用户已被删除
17#
发表于 2015-4-24 18:57:12 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
山那边是海 该用户已被删除
18#
发表于 2015-4-26 11:20:12 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
老尸 该用户已被删除
19#
发表于 2015-5-1 18:10:42 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 02:22

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表