TOMCAT项目转成JBOSS项目的方法步骤



TOMCAT项目转成JBOSS项目的方法步骤。

本文探讨均在ECLIPSE 3.6环境下

 

方式一.(推荐方式) 新建JBOSS项目

1 新建WAR项目  重要是要选择RUNTIME,指向JBOSS RUNTIME,这样会把JBOSS下的类库引入buildpath,作为reference 

TOMCAT项目转成JBOSS项目的步骤

 

2 将TOMCAT 项目的所有内容COPY到新项目中
 
-src下的包,类,properties文件,xml 文件等
-webroot下的目录,html,jsp文件
-WEB-INF/下的lib目录内的jar包
-web.xml文件
删除WEB-INF/lib下一些和JBOSS类库产生冲突的JAR包 比如:

xercesImpl.jar

xml-apis.jar 

WEB-INF/lib 目录下删除servlet-api.jar 如果WEB-INF/lib下含有servlet-api.jar,这通常是TOMCAT的, 这个必须删除,然后系统的JBOSS RUNTIME下的servlet-api.jar就会起作用 
5 JBOSS对SPRING的支持
 
WEB-INF/lib库下加入snowdrop-vfs.jar
web.xml,加入如下语句,就是替换contextClass:
 <context-param>
 <param-name>contextClass</param-name>
 <param-value>org.jboss.spring.vfs.context.VFSXmlWebApplicationContext</param-value>
 </context-param> 

 


方式二.直接TOMCAT项目上修改,(不推荐,ECLIPSE支持的不好,经常出莫名其妙的问题)

删除WEB-INF/lib下一些和JBOSS类库产生冲突的JAR包  
WEB-INF/lib 目录下删除servlet-api.jar  
修改项目的RUNTIME,从TOMCAT RUNTIME改为JBOSS RUNTIME 这步经常有问题,ECLIPSE BUILDPATH 操作经常有一些小BUG 
JBOSS对SPRING的支持  

 

方式三.采用JBOSS TOOLS
这种采用外部工具的做法增加了中间环节, 优点是操作简单些,很多步骤对用户透明, 缺点是做不到底层操作, 我个人不太推荐
 

方式四. 方式二的变种,同样是直接TOMCAT项目上修改
用于解决方式二中, 改变了JBOSSRUNTIME后, 却仍报有关servlet-api.jar异常,如:cannot be cast to javax.servlet.http.HttpServletRequest

其他步骤不变
 
特殊的步骤: WEB-INF/lib 目录下删除servlet-api.jar
此时删完后,ECLIPSE项目上会有”!”,表示buildpath出错(有一个reference的指向不再存在),这时不要管它,继续保持这个错误不变.

TOMCAT项目转成JBOSS项目的步骤

TOMCAT项目转成JBOSS项目的步骤

 

这样在部署后,这个本来错误的buildpath reference(在Eclipse workspace环境里是错误的),在JBOSS部署环境下,实际是有效的,被指向了JBOSS的servlet-api.jar.
(实际操作中,采用方式2时,删掉servlet-api.jar,修改了RUNTIME指向JBOSS RUNTIME,经常还是报servlet-api.jar异常,所以才采用这种特殊的设置方式)