在Tomcat中部署seam工程

    众所周知,Tomcat、Resin是servlet的容器,反应迅速,启动时间快,配置简单(Resin反应应该更迅速一些),但如果用到EJB工程的的话,它们就不能胜任了,比如seam工程就不能完整的在Tomcat中运行,这个时候就必须借助于一个鼎鼎大名的JBoss(当然Websphere、Weblogic也可以),但用了一段时间的JBoss,真的想说爱你不容易,启动一下竟然要1分多钟,给开发与调试带来极大的不便,而且配置文件一大堆,真是个重量级的Web应用服务器,但目前用的这个seam工程又不能在Tomcat中运行,程序员还是真的伤不起。

    接老大的指令,专门花1天的时间来研究下如何将seam工程移入tomcat,翻阅相关在资料,完全无头绪,老大亲自上阵又花了1天时间,发现还是有法可循,国内关于seam的资料还真远远不及hibernate、spring。

    1.首先需在soouceforce上下载一个JBoss-embedded的库,包含JBoss的核心类库。下载地址为

 

http://sourceforge.net/projects/jboss/files/Embedded%20JBoss/Embedded%20JBoss%20Beta%203/

 

    2.将嵌入式JBoss的 bootstrap 和lib目录下的所有文件和目录,除jndi.properties 文件之外,都拷贝到Tomcat的lib目录下。从Tomcat lib目录删除annotations-api.jar 文件。

    3.增加嵌入式JBoss侦听器EmbeddedJBossBootstrapListener到Tomcat的conf/server.xml,它必须出现在该文件中所有其他侦听器的后面。

 

<Listener className="org.jboss.embedded.tomcat.EmbeddedJBossBootstrapListener" />

 

    4.增加WebinfScanner 侦听器到conf/context.xml

 

<Listener className="org.jboss.embedded.tomcat.WebinfScanner" />

 

    5.更改Tomcat的bin/catalina.bat,在文件顶部注释行下增加一个新行

 

set JAVA_OPTS=%JAVA_OPTS% -Dsun.lang.ClassLoader.allowArraySyntax=true

 

然后即OK了。据本人测试,将此tomcat在eclipse下运行seam工程的话还是会有问题,解决办法:在eclipse面板中打开该tomcat选项,在启动参数加上-Dsun.lang.ClassLoader.allowArraySyntax=true。

 

还会出现servlet不可用的问题,解决办法:seam工程的src/hot目录的classpath默认会在WEB-INF/dev下,这样servlet经常会提示找不到类,将src/hot目录的classpath设置为WEB-INF/classes即OK

 

 

posted on 2013-03-26 09:24  liangge0218 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/liangge0218/archive/2013/03/26/3292405.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值