团队在升级 jboss 4.2,碰到的问题 (公司内部转)

团队在升级 jboss 4.2,碰到的问题 (公司内部转)

1、升级到jboss 4.2.2后频繁出现OutOfMemoryError 解决方法:在启动的参数中增加: -XX:PermSize=64M -XX:MaxPermSize=256M 原因分析:查阅文档得知是因为jboss会把一些常用的java的package做缓存,而默认的缓存是很小的,所以会经常抛出 OutOfMemoryError。

 

2、位于JMSSession Thread中的BeanFactory初始化失败原因分析:跟踪代码后发现commons-logging相关类报出ClassCastException,根据这个分析可能是jboss使用的 commons-logging包版本和项目中使用的commons-logging包版本冲突了。解决方法:用项目的commons-logging包替换jboss中的commons-logging包。

 

3、JMS中报出的 ClassNotFound 原因分析:跟踪代码后发现是Jboss的EARClassloader只能加载到ear根目录下的lib,而加载不到war/WEB- INF/classes或lib下的类和资源文件,经菲青指点,应该是可以配置将两个classloader合并的。解决方法:打开{JBOSS_HOME}\server\default\deploy\jboss-web.deployer\META-INF下的 jboss-service.xml,将false修改为true,这样Jboss的EARClassloader就可以加载到war下的类和资源了。

 

4、 Java15Annotation抛出的NPE 原因分析:查看代码后分析Java15Annotation中使用了apache的bcel,而jboss aop也使用了,猜测是两个包版本的冲突。解决方法:用项目的bcel的包替换jboss 4.2.2的bcel的包。

 

5 新版的 jboss-web.deployer 替换了原来的 jbossweb-tomcat55.sar

有关一些配置文件的说明

 

cp -f $CONF_PATH/jboss-service.xml $SERVER_HOME/conf/jboss-service.xml (jboss启动 需要首先启动 jboss mbean service 包括 线程池 log4j服务 jndi jaas jta jmx URLDeploymentScanner 等 service)

cp -f $CONF_PATH/bindings.xml $SERVER_HOME/conf/bindings.xml (这里指定了jboss一系列绑定的 访问端口)

cp -f $CONF_PATH/login-config.xml $SERVER_HOME/conf/login-config.xml 这里配置了jmx的用户名密码需要的配置文件console-users.properties

cp -f $CONF_PATH/oracle*ds.xml $SERVER_HOME/deploy/. (数据源 )

cp -f $CONF_PATH/tomcat-jboss-service.xml .default/deploy/jbossweb-tomcat55.sar/META-INF/jboss-service.xml (这里 修改默认的 false 为 true)

cp -f $CONF_PATH/tomcat-server.xml .default/deploy/jbossweb-tomcat55.sar/server.xml (定义了 tomcat的 connector 的配置 注意添加 useBodyEncodingForURI="true")

cp -f $CONF_PATH/jmx_console_web.xml $SERVER_HOME/deploy/jmx-console.war/WEB-INF/web.xml (配合 下面的jboss-web.xml 控制jmx web登录安全)

cp -f $CONF_PATH/jmx_console_jboss_web.xml $SERVER_HOME/deploy/jmx-console.war/WEB-INF/jboss-web.xml (控制台 的登录安全 , 去掉了注释 security-domain)

cp -f $CONF_PATH/web_console_web.xml $SERVER_HOME/deploy/management/console-mgr.sar/web-console.war/WEB-INF/web.xml (配合 下面的 jboss-web.xml 使得登录控制台需要登录)

cp -f $CONF_PATH/web_console_jboss_web.xml $SERVER_HOME/deploy/management/console-mgr.sar/web-console.war/WEB-INF/jboss-web.xml (去掉注释了 security-domain)

cp -f $CONF_PATH/console-users.properties $SERVER_HOME/conf/props/. (访问jboss jmx 的用户名和密码)

apache+jboss的部署环境,出现多个用户访问的时候, 就会导致页面首页都不能访问,挂在那里,后台也没有错误日志,重启apache 后 又可以访问,但一旦多个用户访问 又导致前面的现象,仍然必须重启apache。后来发现 这个后台的apache版本是2.0的 而其他的 前台 都是 2.2的 ,我们升级为2.2后,就没有这个问题了 (应该是mod_jk的版本升级)!

 

jboss启动脚本要加 -b 0.0.0.0 后才可以让外部IP访问

 

JBoss4.2.x与jBoss4.0.x在整体架构上没有很大变化,只是在某些组件上做了升级以及bug修复。

主要修改点有:

 

1. JBoss4.2必须需要安装jdk5

2. JBoss Ejb3默认被安装

3. JBoss的web容器使用JBoss Web v2.x (集成tomcat6)

4. deploy/jboss-web.deployer 目录替换了原先的deploy/jbossweb-tomcat55.sar

5. JBoss Transactions v4.2为默认的事务管理器

6. JBoss WS提供web service功能

7. JGroups/JBossCache支持 channel multiplexing

8. JBoss Remoting更新到stable 2.2.x,JBossMQ(JBoss4.0使用)为默认JMS实现,但是可以使用JBoss Messaging替换。

9. EJB调用方式 由 rmi-invoker替换为JBoss Remoting 的 unified-invoker

10. log4j 和 commons-logging 升级到新版本

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值