仓酷云

标题: JAVA网页编程之JBoss进门及基本使用仓酷云 [打印本页]

作者: 海妖    时间: 2015-1-18 11:32
标题: JAVA网页编程之JBoss进门及基本使用仓酷云
前些天,在CSDN上看到了一个消息,说是net网页编程网页编程AJAX成功在Linux上运行,这一点对我触动很大,而且引发了我许多感叹,所以想写出来分享一下。  1.JBoss使用服务器的近况及瞻望

  最近几年来,在J2EE使用服务器范畴,JBoss是开展最为敏捷的使用服务器。因为JBoss遵守贸易友爱的LGPL受权分发,而且由开源社区开辟,这使得JBoss广为盛行。别的,JBoss使用服务器还具有很多优异的特质。其一,它将具有反动性的JMX微内核服务作为其总线布局;其二,它自己就是面向服务的架构(Service-OrientedArchitecture,SOA);其三,它还具有一致的类装载器,从而可以完成使用的热部署和热卸载才能。因而,它是高度模块化的和松耦合的。JBoss用户的主动反应告知我们,JBoss使用服务器是强健的、高质量的,并且还具有优秀的功能。

  为满意企业级市场日趋增加的需求,JBoss公司从2003年入手下手就推出了24*7、专业级产物撑持服务。同时,为拓展JBoss的企业级市场,JBoss公司还签定了很多渠道互助同伴。好比,JBoss公司同HP、Novell、ComputerAssociates、Unisys等都是互助同伴。

  在2004年6月,JBoss公司公布,JBoss使用服务器经由过程了Sun公司的J2EE认证。这是JBoss使用服务器开展史上至今为止最主要的里程碑。与此同时,JBoss一向在紧跟最新的J2EE标准,并且在某些手艺范畴引领J2EE标准的开辟。因而,不管在贸易范畴,仍是在开源社区,JBoss成了第一个经由过程J2EE1.4认证的支流使用服务器。如今,JBoss使用服务器已真正开展成具有企业强度(即,撑持关头级义务的使用)的使用服务器。

  JBoss4.0作为J2EE认证的主要功效之一,已于2004年9月顺遂公布了。同时,JBoss4.0还供应了JBossAOP(Aspect-OrientedProgramming,面向方面编程)组件。最近,AOP吸引了大批开辟者的存眷。它供应的新的编程形式使得用户可以将方面(好比,事件)从底层营业逻辑平分离出来,从而可以延长软件开辟周期。用户可以独自利用JBossAOP,即可以在JBoss使用服务器内部利用它。大概,用户也能够在使用服务器情况中利用它。JBossAOP1.0已在2004年10月公布了。

  瞻望下一代JBoss使用服务器,其重点存眷的是EJB3.0。以后,J2EE1.4标准利用了EJB2.1。个中,EJB3.0的次要方针是简化EJB模子,即用户可以更简单开辟EJB组件,而且可以在EJB容器内部测试EJB组件。EJB3.0标准草案已于2004年6月推出。JBoss公司一向在主动介入EJB3.0标准的制订,而且在为EJB标准的开展奉献本人的力气。个中,GavinKing(Hibernate的创建者)和BillBurke(JBoss公司的首席架构师)已为EJB3.0标准草案奉献了良多内容。

  JBoss公司于2004年10月初公布了基于JBoss使用服务器完成的EJB3.0预览版。只管EJB3.0标准草案还处于早期开展和评审阶段,但这为J2EE社区测试EJB3.0、并供应反应信息供应了很好的时机。这也证明了JBoss是一家立异型公司。JBoss一向在引领手艺标准的开展。

  最近几年来,Hibernate已成了现实上的耐久化引擎。JBoss公司努力于将本身开展成为开源项目标社区,好比招募GavinKing和很多Hibernate开辟者。个中,最新版的JBoss使用服务器已将Hibernate集成为JMXMBean服务。这使得用户可以在使用服务器情况中间接利用Hibernate,而不论它是不是处于J2EE高低文中。

  从2003年入手下手,JBoss启动了JBossCache项目。JBossCache是基于内存的、可复制的、事件性的缓存体系,而且具有耐久化形态存储办理才能。比来,它遭到极年夜的存眷。用户可以在JBoss使用服务器或其他使用服务器中,或独自利用JBossCache。同时,它供应的基于JBossAOP的AOP模块可以在可复制情况中完成细粒度、域级别复制,并且可以通明地办理庞大对象。在最新版的JBoss使用服务器中,用户可以间接经由过程JMXMBean服务会见到JBossCache供应的服务。

  下一代的JBoss使用服务器(暂命名为,JBoss5.0)将供应大批的新功效。除撑持最新的EJB3.0标准外,新版的JBossAOP将同它正式公布。同时,JBoss开辟团队还企图开辟新的微内核层,即自力于JMX,使得它可以自力利用。别的,有关JBoss使用服务器的架构和开辟,开辟者能够参考由ScottStark博士著的《JBossAdministrationandDevelopment3.2.xThirdEdition》一书(此书已由电子产业出书社引进并翻译出书,中文版书名为《JBoss办理和开辟中心手艺(第三版)》)。ScottStark博士是JBoss公司的开创人之一,他一向在向导JBoss产物的研发。该书内容涵盖了JBoss使用服务器的各个方面,好比JMX微内核、客户端和服务器端拦阻器和J2EE平台服务的完成等外容。假如开辟者对JBoss内核和开辟基于JBoss/J2EE的使用感乐趣,则最好可以浏览这本威望著作。

2.JBOSS的获得

JBOSS的官方网站是www.jboss.com,在http://www.jboss.com/downloads/index 能够下载到JBoss的各类版本,另有和ECLIPSE,JBUILDER等IDE集成的插件。我所下载的是ZIP版本的jboss-3.2.7.tar.gz。

固然,JBOSS的运转必要JDK的撑持,并且版本欠亨,响应对JDK的请求也分歧,JDK的下载地点是http://java.sun.com/

3.JBoss的启动和办理

jboss-3.2.7.tar.gz解开紧缩以后,在(WindowsXP)体系-属性-初级-情况变量里,增加JBOSS_HOME,指向所解压开来的目次。并把JBOSS_HOME下bin目次增加到体系Path情况变量里,如许便利在入手下手菜单运转里,敲进run.bat就能够启动JBOSS了。

也能够在JBOSS目次下bin目次里,双击run.bat文件,就能够启动JBOSS了。假如没有看到甚么非常,启动信息以下:

==============================================================================
.
JBossBootstrapEnvironment
.
JBOSS_HOME:D:javatooljboss-3.2.7in..
.
JAVA:D:javatooljdk1.5.0_06injava
.
JAVA_OPTS:-Dprogram.name=run.bat
.
CLASSPATH:D:javatooljdk1.5.0_06lib        ools.jar;D:javatooljboss-3.2.7in
run.jar
.
===============================================================================
.
16:47:58,953INFO[Server]StartingJBoss(MXMicroKernel)...
16:47:58,953INFO[Server]ReleaseID:JBoss[WonderLand]3.2.7(build:CVSTag=
JBoss_3_2_7date=200501280217)
16:47:58,968INFO[Server]HomeDir:D:javatooljboss-3.2.7
16:47:58,968INFO[Server]HomeURL:file:/D:/javatool/jboss-3.2.7/
16:47:58,968INFO[Server]LibraryURL:file:/D:/javatool/jboss-3.2.7/lib/
16:47:58,968INFO[Server]PatchURL:null
16:47:58,968INFO[Server]ServerName:default
16:47:58,968INFO[Server]ServerHomeDir:D:javatooljboss-3.2.7serverdefa
ult
16:47:58,968INFO[Server]ServerHomeURL:file:/D:/javatool/jboss-3.2.7/serve
r/default/
16:47:58,968INFO[Server]ServerDataDir:D:javatooljboss-3.2.7serverdefa
ultdata
16:47:58,968INFO[Server]ServerTempDir:D:javatooljboss-3.2.7serverdefa
ult        mp
16:47:58,968INFO[Server]ServerConfigURL:file:/D:/javatool/jboss-3.2.7/ser
ver/default/conf/
16:47:58,968INFO[Server]ServerLibraryURL:file:/D:/javatool/jboss-3.2.7/se
rver/default/lib/
16:47:58,968INFO[Server]RootDeploymentFilename:jboss-service.xml
16:47:58,968INFO[Server]StartingGeneralPurposeArchitecture(GPA)...
16:47:59,312INFO[ServerInfo]Javaversion:1.5.0_06,SunMicrosystemsInc.
16:47:59,312INFO[ServerInfo]JavaVM:JavaHotSpot(TM)ClientVM1.5.0_06-b05
,SunMicrosystemsInc.
16:47:59,312INFO[ServerInfo]OS-System:WindowsXP5.1,x86
16:47:59,625INFO[Server]Coresysteminitialized
16:48:04,281INFO[Log4jService$URLWatchTimerTask]ConfiguringfromURL:resour
ce:log4j.xml
16:48:04,890INFO[WebService]UsingRMIservercodebase:http://YXB:8083/
16:48:06,203INFO[NamingService]StartedjndibootstrapjnpPort=1099,rmiPort=
1098,backlog=50,bindAddress=/0.0.0.0,ClientSocketFactory=null,ServerSocket
Factory=org.jboss.net.sockets.DefaultSocketFactory@ad093076
16:48:10,828INFO[Embedded]Catalinanamingdisabled
16:48:11,890INFO[Http11Protocol]InitializingCoyoteHTTP/1.1onhttp-0.0.0.0
-8080
16:48:11,937INFO[Catalina]Initializationprocessedin1016ms
16:48:11,937INFO[StandardService]Startingservicejboss.web
16:48:11,937INFO[StandardEngine]StartingServletEngine:ApacheTomcat/5.0.3
0
16:48:11,968INFO[StandardHost]XMLvalidationdisabled
16:48:12,000INFO[Catalina]Serverstartupin63ms
16:48:12,187INFO[TomcatDeployer]deploy,ctxPath=/invoker,warUrl=file:/D:/ja
vatool/jboss-3.2.7/server/default/deploy/http-invoker.sar/invoker.war/
16:48:14,562INFO[TomcatDeployer]deploy,ctxPath=/,warUrl=file:/D:/javatool/
jboss-3.2.7/server/default/deploy/jbossweb-tomcat50.sar/ROOT.war/
16:48:14,968INFO[TomcatDeployer]deploy,ctxPath=/jbossmq-httpil,warUrl=file
:/D:/javatool/jboss-3.2.7/server/default/deploy/jms/jbossmq-httpil.sar/jbossmq-h
ttpil.war/
16:48:16,921INFO[RARMetaData]LoadingJBossResourceAdapterforJDBC2XAdr
ivers
16:48:16,937INFO[RARMetaData]Requiredlicensetermspresent.Seedeployment
descriptor.
16:48:23,031INFO[MailService]MailServiceboundtojava:/Mail
16:48:23,796INFO[DefaultDS]Boundconnectionfactoryforresourceadapterfor
ConnectionManager"jboss.jca:service=LocalTxCM,name=DefaultDStoJNDIname"jav
a:/DefaultDS"
16:48:24,781INFO[A]BoundtoJNDIname:queue/A
16:48:24,781INFO[B]BoundtoJNDIname:queue/B
16:48:24,781INFO[C]BoundtoJNDIname:queue/C
16:48:24,796INFO[D]BoundtoJNDIname:queue/D
16:48:24,796INFO[ex]BoundtoJNDIname:queue/ex
16:48:24,828INFO[testTopic]BoundtoJNDIname:topic/testTopic
16:48:24,828INFO[securedTopic]BoundtoJNDIname:topic/securedTopic
16:48:24,828INFO[testDurableTopic]BoundtoJNDIname:topic/testDurableTopic

16:48:24,843INFO[testQueue]BoundtoJNDIname:queue/testQueue
16:48:24,937INFO[UILServerILService]JBossMQUILserviceavailableat:/0.0.
0.0:8093
16:48:25,312INFO[DLQ]BoundtoJNDIname:queue/DLQ
16:48:25,500INFO[JmsXA]BoundconnectionfactoryforresourceadapterforCon
nectionManager"jboss.jca:service=TxCM,name=JmsXAtoJNDIname"java:/JmsXA"
16:48:25,500INFO[socialDs]Boundconnectionfactoryforresourceadapterfor
ConnectionManager"jboss.jca:service=LocalTxCM,name=socialDstoJNDIname"java:
/socialDs"
16:48:27,625INFO[TomcatDeployer]deploy,ctxPath=/jmx-console,warUrl=file:/D
:/javatool/jboss-3.2.7/server/default/deploy/jmx-console.war/
16:48:27,906INFO[TomcatDeployer]deploy,ctxPath=/web-console,warUrl=file:/D
:/javatool/jboss-3.2.7/server/default/deploy/management/web-console.war/
16:48:28,968INFO[TomcatDeployer]deploy,ctxPath=/oracle-test,warUrl=file:/D
:/javatool/jboss-3.2.7/server/default/deploy/oracle-test.war/
16:48:32,203INFO[TomcatDeployer]deploy,ctxPath=/wapweb,warUrl=file:/D:/jav
atool/jboss-3.2.7/server/default/tmp/deploy/tmp38022wapweb.war/
16:48:33,031INFO[Http11Protocol]StartingCoyoteHTTP/1.1onhttp-0.0.0.0-808
0
16:48:33,359INFO[ChannelSocket]JK2:ajp13listeningon/0.0.0.0:8009
16:48:33,531INFO[JkMain]JkrunningID=0time=0/375config=null
16:48:33,578INFO[Server]JBoss(MXMicroKernel)[3.2.7(build:CVSTag=JBoss_3
_2_7date=200501280217)]Startedin34s:16ms

这就暗示JBOSS已启动乐成了,默许的端口是8080。你就能够在IE扫瞄栏里输出http://localhost:8080/,假如能看到JBOSS的接待画面,如许JBOSS就乐成安装了。

JBossOnlineResources
GettingstartedwithJBoss3.2[PDF]
JBossWiki
JBossforums
JBossManagement
Tomcatstatus(full)(XML)
JMXConsole
JBossWebConsole
接待画面如上,你能够选择链接进进,并对JBOSS相干设置举行办理。值得申明的是,JBOSS集成了TOMCAT。

4.JBoss的复杂使用

在此列一个在JBOSS内里毗连Oracle的例子。

起首进进JBOSS安装目次下,D:javatooljboss-3.2.7serverdefaultdeploy;文件hsqldb-ds.xml是设置数据库链接的属性文件,你能够复制hsqldb-ds.xml然后改名为oracle-ds.xml,文件内容修正以下:

<xmlversion="1.0"encoding="gb2312">

<!--=====================================================================-->
<!---->
<!--JBossServerConfiguration-->
<!---->
<!--=====================================================================-->

<!--$Id:oracle-ds.xml,v1.1.2.42003/09/1703:46:01ejortExp$-->
<!--====================================================================-->
<!--DatasourceconfigforOracleoriginallyfromStevenCoy-->
<!--====================================================================-->


<datasources>
<local-tx-datasource>
<jndi-name>socialDs</jndi-name>
<!--<connection-url>jdbc:oracle:thin:@192.168.1.230:1521:ora9</connection-url>-->
<connection-url>jdbc:oracle:thin:@202.103.67.175:5012:newwapdb</connection-url>
<!--
HereareacoupleofthepossibleOCIconfigurations.
Formoreinformation,seehttp://otn.oracle.com/docs/products/oracle9i/doc_library/release2/java.920/a96654/toc.htm

<connection-url>jdbc:oracle:oci:@youroracle-tns-name</connection-url>
or
<connection-url>jdbc:oracle:oci:@(description=(address=(host=youroraclehost)(protocol=tcp)(port=1521))(connect_data=(SERVICE_NAME=yourservicename)))</connection-url>

Clearly,itsbettertohaveTNSsetupproperly.
-->
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>wapwork</user-name>
<password>wapmanager</password>
<!--UsesthepingDatabasemethodtocheckaconnectionisstillvalidbeforehandingitoutfromthepool-->
<!--valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker</valid-connection-checker-class-name-->
<!--CheckstheOracleerrorcodesandmessagesforfatalerrors-->
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<!--sqltocallwhenconnectioniscreated
<new-connection-sql>somearbitrarysql</new-connection-sql>
-->

<!--sqltocallonanexistingpooledconnectionwhenitisobtainedfrompool-theOracleValidConnectionCheckerisprefered
<check-valid-connection-sql>somearbitrarysql</check-valid-connection-sql>
-->
</local-tx-datasource>
</datasources>

固然,你得修正一些顺应你数据库得一些设置,好比用户名啊,数据库地点啊。

然后在这个目次下创建一个oracle-test.war目次,注重目次的称号是以.war开头的,如许公布的时分会主动加载。

作为一个站点目次,这个目次里必要WEB-INF目次。内里的内容为空也行,也能够拷贝例子里的工具。在这个目次下创建一个index.jsp文件,内容以下:

<%@pagelanguage="java"contentType="text/html;charset=gb2312"pageEncoding="GBK"%>
<%@pageimport="java.sql.*,javax.sql.DataSource,javax.naming.InitialContext"%>

<h3>TestOracleDB</h3>

<%
InitialContextctx=newInitialContext();
DataSourceds=(DataSource)ctx.lookup("java:/socialDs";//注重这里哦和后面oracle-ds.xml对应
Connectionconn=ds.getConnection();
Statementstmt=conn.createStatement();
ResultSetrs=stmt.executeQuery("SELECTcount(*)FROMBOOK";
while(rs.next(){
out.println(rs.getInt(1)+"<br>";
out.println("MynameisAhpo<br>";
}
conn.close();
%>

然后启动Jboss在扫瞄器里输出http://localhost:8080/oracle-test 就能够显现数据库毗连的了局。


其实产生见解的过程就是训练自己发现问题,分析问题的能力。根据以上的认识我想谈下传统的学习与通过视频独立学习的优缺点:
作者: 灵魂腐蚀    时间: 2015-1-19 21:48
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
作者: 变相怪杰    时间: 2015-1-20 12:30
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
作者: 山那边是海    时间: 2015-1-25 22:52
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者: admin    时间: 2015-1-30 22:30
是一种突破用户端机器环境和CPU
作者: 金色的骷髅    时间: 2015-2-5 22:17
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
作者: 若相依    时间: 2015-2-13 19:34
Java 编程语言的风格十分接近C、C++语言。
作者: 爱飞    时间: 2015-2-28 05:01
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
作者: 柔情似水    时间: 2015-3-2 20:31
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
作者: 飘飘悠悠    时间: 2015-3-8 10:54
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
作者: 再见西城    时间: 2015-3-15 22:06
是一种语言,用以产生「小应用程序(Applet(s))
作者: 冷月葬花魂    时间: 2015-3-22 05:54
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
作者: 小魔女    时间: 2015-3-22 19:10
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 因胸联盟    时间: 2015-4-2 19:22
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
作者: 只想知道    时间: 2015-4-19 00:50
是一种将安全性(Security)列为第一优先考虑的语言
作者: 蒙在股里    时间: 2015-5-8 01:38
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
作者: 海妖    时间: 2015-6-7 13:11
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者: 第二个灵魂    时间: 2015-6-9 07:34
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
作者: 莫相离    时间: 2015-6-15 11:42
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
作者: 透明    时间: 2015-7-12 15:03
是一种使网页(Web Page)产生生动活泼画面的语言




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2