分类:
2007-07-05 12:57:06
2.JBOSS
2.0 FOR NEW USER
$JBOSS-HOME/server/下有3个目录,all/default/minimal,它们是表示3种配置,全部的配置、默认配置、最小配置,我们在启动JBOSS服务时,可以指定
run –c all 表示是启动all配置(将会加载所有服务);run 表示是以默认配置启动;
run –c mimimal 表示是启动mimimal配置。这三者所加载的服务数量不同,具体区别可查阅JBOSS相关文档,你还可以自己定义一个配置,如test,属于高手去为了性能上的考虑了,那这份文档对你的帮助不会太大了。
如果你确定了JBOSS服务启动的配置,那么你的应用及相关配置就需要部署在对应的目录下的相关的路径下,如all/,default/,minimal/下。
1、相关DTD定义文件位于$JBOSS-HOME/docs/dtd,在其下的文件中可以查阅某个XML配置文件中某个元素或属性的意义。
2、数据源配置文件的路径,$JBOSS-HOME/server/all/deploy,文件格式必须是*-ds.xml的样式。不同的数据库配置参数可参考$JBOSS-HOME/docs/examples/jca/下的示例文档。有关参数的细节在下面会有一定的描述。
3、公共的jar包我们可以放在$JBOSS-HOME/server/all/lib下,如数据库的JDBC jar,log4j.jar等,如果这些JAR已经在该lib下放置了,那么我们的应用WEB-INF/lib下不应该再放置,否则JBOSS也会将他们再一次加载,白白占用内存。
4、配置日志的文件,log4j.xml位于$JBOSS-HOME/server/all/conf下,具体配置下文还会有一点介绍
5、$JBOSS-HOME/server/all/work下存放的是JSP编译后的.java及.class文件,如果调试JSP时出错了,可以到该目录下(一级级去翻吧)去找对应的文件,调试问题。还有个小TIPS,有时我们明明把一个JSP更新到对应的目录里了,可是去刷新页面时,内容还是旧的,为了解决该问题,我们可以到work目录下,将对应的.java及.class文件删了,再刷新即可,这个原因不好推测,有时可以自动刷新,有时不行。单个的TOMCAT都能自动刷新,不知为何集成到JBOSS里却有时不行。还需注意的事,你在清除旧的java、class文件时,不能为了省事,而直接删除目录,否则刷新时会报错的,等着你的就是要重启JBOSS服务了。
6、$JBOSS-HOME/server/all/log下存放的是日志文件,默认的log4j.xml配置是将日志输出到该文件夹下的server.log文件,可以去查看信息进行调试。
7、我们的应用一般部署在$JBOSS-HOME/server/all/deploy/jbossweb-tomcat55.sar/下,建个TestCrm.war目录,把我们的整个应用部署在该.war目录下,这样JSP、Servlet将由tomcat引擎来解析处理。
8、配置应用的WEB服务的端口号及参数。
是在…./ deploy/jbossweb-tomcat50.sar/server.xml中,自己找8080,修改为你想设定的端口即可。在…/all/deploy/jbossweb-tomcat55.sar/META-INF/jboss-service.xml中配置。
2.1 JBOSS 应用程序的下载及安装
前往去下载相应的版本。直接解压到相关的目录即可。
为了支持java,需要安装jdk-6-linux-i586。
设置环境变量:
# vi /etc/profile
export JAVA_HOME=/usr/java/jdk
export JBOSS_HOME=/usr/local/jboss-
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$JBOSS_HOME/bin
如果后台代码使用EJB3.0规范,还需要为JBoss打上这个补丁: jboss-EJB-3.0_RC9_Patch_1.zip
# unzip jboss-EJB-3.0_RC9_Patch_1.zip
# cd jboss-EJB-3.0_RC9_Patch1
# ant -f install.xml -Djboss.server.config=all
2.2 JBOSS 应用程序的配置调整
需要修改配置文件以适应apache中配置的“session sticky配置”。如下:
%JBOSS_HOME%/server/default/deploy/jbossweb-tomcat55.sar/META-INF/jboss-service.xml
修改
%JBOSS_HOME%/server/default/deploy/jbossweb-tomcat55.sar/server.xml
修改
与上述workers2.properties定义的内容一致。
如上配置后,就可以实现apache+jboss的负载均衡。
如果我们要想使得几台JBOSS应用服务器互为备份(仅限于SESSION),在群内一台JBOSS服务器down掉的时候,用户不受影响,继续以登陆用户身份进行工作,则我们需要配置Clustering,并启动相关服务。下面将描述相关配置项:
1)、修改应用APP的web.xml:
../default/deploy/jbossweb-tomcat55.sar/Test.war/WEB-INF/web.xml
修改内容如下:
…….
2)、需要启动一个服务cluster-service.xml
如果是以run -c all 来启动jboss服务,则默认是将cluster服务启动,无需做什么配置工作,只需确认相关文件是否存在即可。
确认…/server/all/deploy/下存在cluster-service.xml文件;
确认…/server/all/lib/下存在jgroups.jar文件,如果没有则重新安装jboss。
如果应用程序部署在all配置下,则需将上述的两个文件分别拷入
…/server/all/deploy/、…/server/all/lib/目录下。
各种类型的数据库,都可以根据%JBOSS_HOME%/docs/examples/jca/下的示例文档配置,更详细的参数配置可参阅JBOSS.com上的文档或…/docs/dtd/下的dtd定义来配置。
下面以oracle为例,提供我们在生产机环境的配置。
该oracle-dsxml文件需要被部署在%JBOSS_HOME%/server/all(or default)/deploy/下,对应的数据库驱动程序jar需copy至部署的配置的lib下,如…all/lib/或…default/lib/下。
在从连接池里获得一个连接之前先通过执行一个简单的SQL来校验connection的有效性-->
如有多个数据源,则根据数据库的类型,配置完成,部署在上述路径下即可。
在代码中可通过JNDI来从连接池中获取连接。
……
Context ctx = new javax.naming.InitialContext();
DataSource ds = (DataSource)ctx.lookup("java: OracleDS ");
Connection con = ds.getConnection();
……