深入研究JAVAEE应用服务器之准备工作

本文详细介绍如何从源代码开始构建GlassFish应用服务器的过程。包括环境准备、代码下载、构建及运行等步骤。

  说到服务器,大家最熟悉的可能就是apache的tomcat,这个流行的web容器。对于大型的,支持N多JAVAEE规范的应用服务器,比如:商用的websphere,weblogic,borland appserver,apusic;以及开源的glassfish,jboss,geronimo等等。大多数人可能有使用经验,而且绝大部分人是用安装包进行安装的。你是否想过,从源代码自己build出一个应用服务器来?修改一些核心代码?深入研究一下JAVAEE服务器启动时到底做了什么? 这些,也许你都想过,但是可能你觉得好复杂,所以就放弃了你这个非常好的想法。

 

  你是否经常问自己,什么时JAVAEE,JAVAEE应用服务器又是什么东西? 

  其实,JAVAEE应用服务器不是那么高不可攀。建议你像笔者一样,采用循序渐进,一点点的去接触代码,不要急于求成。你定能通过自己的努力,驾御应用服务器。从这里开始启航,以glassfish(这里选用v2.1.1版本)为对象,开启你研究应用服务器底层实现的大门。

 

  Long story short,开始吧!

 

  前言:本章给出的步骤,也许不是唯一的,比如说代码的下载,用svn和cvs都可以。如果你是新手,那么还是按照笔者的步骤做。

 

  环境准备篇开始:

  1,工具准备

  1.1,如果用eclipse的cvs插件的话,请略过这一步。cvsnt:用于从glassfish的cvs库里下载代码,如果你有csdn帐号,那就到我的资源库下载(我刚才上传了的,但是现在一直刷新不出来,所以URL暂时提供不了,重新上传又提示“已经上传过”,等你看到这篇东西的时候应该可以看到了)。如果没有,那你就baidu吧,随便都能找到。

  1.2,ant,到http://archive.apache.org/dist/ant/binaries/apache-ant-1.6.5-bin.zip,高版本也可以。

  1.3,maven,http://archive.apache.org/dist/maven/binaries/maven-1.0.2.zip,这个没的选择,只能用1.0.2版本

  安装之后请保证以上工具的bin路径在你OS的path环境变量中。

 

  2,代码下载

  2.1,新建一个根目录,比如d://appserver,注意:以下所有操作的路径都基于此路径

  2.2,glassfish/bootstrap:此模块是下载其他代码和build的根基。在appserver目录下运行[cvs -d :pserver:guest@cvs.dev.java.net:/cvs checkout -r SJSAS91_FCS_BRANCH glassfish/bootstrap]就可以下载。

  这里选择SJSAS91_FCS_BRANCH分支就可以,尽管这不是目前最新的,但是对于学习来说已经足够。

  此外,可以使用eclipse的cvs工具去下载,还可以选择另外一个分支【SGES211_FCS_BRANCH】

  2.3,下载所有源代码:2.2之后,需要修改一下appserver/glassfish/bootstrap/build.properties

  glassfish.os.name=WINNT

  glassfish.cvs.username=guest

  [glassfish.os.name的值根据你自己的系统而定:WINNT, SunOS, Linux, SunOS_X86, Darwin]

  设置好之后,cd appserver/glassfish/bootstrap,运行[maven checkout],取决于你机器的网速,这个过程会比较长。

  2010-09-29 add 【现在checkout时下载一些jar包或者源代码的时候,以前的URL(http://download.java.net)已经过期,如果checkout失败,glassfish/bootstrap/project.properties文件中的相应URL应该修改为http://dlc.sun.com.edgesuite.net。已经给glassfish社区发邮件,不知道他们何时更新CVS。】

  这步操作完了之后,你会在appserver/glassfish下看到很多模块,比如admin-cli,这个就是命令行代码。

  你要是着急了,可以顺便看看里面的代码和build脚本,但是现在可能你看了也是一头雾水。

 

 3,开始build

 还是cd appserver/glassfish/bootstrap

 3.1,bootstrap-all:运行[maven bootstrap-all],这一步主要是从glassfish官网下载一些依赖组件(比如openmq,openesb等)和解压缩这些组件。至于从那里下载:你看一下appserver/glassfish/bootstrap/project.properties中的repo.remote*就知道了。下载的所有组件都保存在appserver/glassfish_dependencies下,你也可以去看看.这一步完成之后,你还会看到多了appserver/publish/glassfish目录,这里面有刚才提到的openmq目录等。

  3.2,正式build:运行[maven build],这一步主要是分别调用,appserver/glassfish下的所有模块的build脚本。该打包的打包,该直接copy的就直接copy。这一步完成之后,你会在appserver/publish/glassfish/lib下看到很多jar,其他的目录也多了一些文件。

  3.3,创建domain:domain是应用服务器中一个重要的概念,这里就不赘述了,自己baidu去吧。运行[maven  configure-runtime]或者[maven  configure-cluster],这里建议运行后者,因为集群是v2的新特性。再说了,集群也是企业级应用的必备。这一步完了之后,你会看到appserver/publish/glassfish/domains/domain1目录,自己想看就看吧,里面很多配置文件,比如最最最重要的config/domain.xml文件。


  4,运行domain(开始享受)

  以下操作需要cd appserver/publish/glassfish/bin

  4.1,启动domain:[asadmin start-domain domain1],就会看到控制台的提示信息,如果你看到如下信息,那么恭喜你!

   Domain listens on at least following ports for connections:

   [8080 8181 4848 3700 3820 3920 8686 ].

  4.2,运行控制台(看看你辛苦一天的可视化效果):打开ie, http://localhost:4848,之后用admin/adminadmin登陆,你将会看到很多在后台运行的glassfish服务和模块的配置。自己瞎点瞎看吧!只要在感性上有点认识就可以了。

  4.3,你应该累了,asadmin stop-domain domain1之后休息去吧,要慢慢来,心急吃不了热豆腐。

 

  5,下载glassfish文档:

    去http://docs.sun.com/app/docs/coll/1343.11 把所有glassfish的文档下载下来。

 

 

  如果你现在还不累,那么就研究文档吧。

  你现在应该做的就是:

  =======看文档,至少把glassfish用熟了。你用熟了之后,以后对于代码的学习,架构的学习就会有大很大的帮助。

  =======好戏才刚刚开始,请期待我之后的“杰作”,哈哈!

  =======遇到任何问题可以msn或者邮件:xuqingkang2@163.com

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值