从tomcat迁移项目到geronimo

本文介绍了一个使用Struts框架的Web项目从Websphere迁移到Geronimo过程中遇到的问题及解决方案,特别是关于部署描述符文件geronimo-web.xml的配置调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 我有一个web项目,用的strtus框架。

正常情况下,打包成war后,在websphere正式版的控制台里发布,没有问题,我想把他移植到到wasce中,相同的war文件,或者相同的目录结构,却失败了。

查了些资料后,发现根本原因是部署描述符文件错。

前面的文章讲到过,geronimo项目需要部署描述符文件来描述各模块的关系,这是个很重要的文件。我的项目是个web项目,文件名叫geronimo-web.xml。

在单独的tomcat里发布时,是不需要这个文件的。

websphere正式版在发布时,会自动分析项目目录,自动把部署描述符文件加上去。

我下面就把我遇到的问题,以及我怎么解决的写出来。

首先,把war包原样发布后,提示classnotfound错误。原因呢,就是我这个项目使用了org.apache.commons.digester模块,geronimo本身自带了这个模块,而且是优先运行的,他的classloader的级别比web项目的classloader的级别高,造成找到不项目中的class。

解决办法:在geronimo-web.xml中加入下面元素

<sys:hidden-classes>
      <sys:filter>org.apache.commons.digester</sys:filter>
    </sys:hidden-classes>

意思是让org.apache.commons.digester优先在当前classloader下运行。hidden-classes就是启这个作用的。

well,这个问题解决了,又有了新错误,提示找不到saxexception类。

我的项目中使用了sax来处理xml。

在geronimo安装目录下的lib/endorsed目录里,自带了xerces和xml包。geronino中,这个lib目录下的包是优先于应用程序下的lib中的包的加载的。所以造成一些错误。

我把geronimo安装目录下的lib/endorsed目录里的xerces和xml包删除,程序运行正常了。

通过这个例子,部署描述符文件也是蛮重要的。

下面是这些描述符文件的规范说明,有时间大家可以去看看.

http://publib.boulder.ibm.com/wasce/V1.1.0/en/Reference/Plans/index.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值