关于使用jboss和tomcat的讨论

在项目中由于从jboss向tomcat切换。需要考虑一些问题,最终确定了下来。

1、ear包和war包

jboss是ejb容器,可以运行ejb应用,支持ear包。而Tomcat只是servlet容器,只能运行web应用,只能打成war包。

2、运行时jar包

在jboss中的modules目录里有system的文件夹,是jboss自带的jar包,启动时会自动加载。


而其它文件夹是用户自己创建的,放着工程中一些公共的运行时jar包。可以按需加载,具体在jboss-deployment-structure.xml中配置,具体的位置:


需要哪些jar包在里面声明哪些jar包。

还以上图内容举例:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
		<exclusions>
			<module name="org.apache.log4j" />
			<module name="org.slf4j" />
			<module name="org.apache.commons.logging" />
			<module name="org.log4j" />
			<module name="org.jboss.logging" />
		</exclusions>
	</deployment>
	
	<sub-deployment
		name="itoo-freshmen-insurance-core.jar">
		<exclusions>
			<module name="org.apache.log4j" />
			<module name="org.slf4j" />
			<module name="org.apache.commons.logging" />
			<module name="org.log4j" />
			<module name="org.jboss.logging" />
		</exclusions>
		
		<dependencies>
			<module name="org.jboss.xnio" />
			<module name="org.apache.shiro">
				<imports>
					<include path="META-INF**" />
					<include path="org**" />
				</imports>
			</module>
			<module name="org.jasig.cas.client">
				<imports>
					<include path="META-INF**" />
					<include path="org**" />
				</imports>
			</module>
			<module name="org.springframework.data">
				<imports>
					<include path="META-INF**" />
					<include path="org**" />
				</imports>
			</module>
			<module name="org.crazycake">
				<imports>
					<include path="META-INF**" />
					<include path="org**" />
				</imports>
			</module>
			<module name="commons-fileupload">
				<imports>
					<include path="META-INF**" />
					<include path="org**" />
				</imports>
			</module>
			<module name="org.codehaus.jackson">
				<imports>
					<include path="META-INF**" />
					<include path="org**" />
				</imports>
			</module>
			<module name="redis.clients">
				<imports>
					<include path="META-INF**" />
					<include path="org**" />
				</imports>
			</module>
			
			<module name="org.eclipse.persistence">
				<imports>
					<include path="META-INF**" />
					<include path="org**" />
				</imports>
			</module>
			
			
			<module name="commons-lang">
				<imports>
					<include path="META-INF**" />
					<include path="org**" />
				</imports>
			</module>
			<module name="org.apache.commons.commons-pool2">
				<imports>
					<include path="META-INF**" />
					<include path="org**" />
				</imports>
			</module>
			<module name="org.springframework">
				<imports>
					<include path="META-INF**" />
					<include path="org**" />
				</imports>
			</module>
			
		</dependencies>
	</sub-deployment>
	
	<sub-deployment
		name="itoo-freshmen-insurance-web.war">
		<exclusions>
			<module name="org.apache.log4j" />
			<module name="org.slf4j" />
			<module name="org.apache.commons.logging" />
			<module name="org.log4j" />
			<module name="org.jboss.logging" />
		</exclusions>
		
		<dependencies>
			<module name="org.jboss.xnio" />
			<module name="org.apache.shiro">
				<imports>
					<include path="META-INF**" />
					<include path="org**" />
				</imports>
			</module>
			<module name="org.jasig.cas.client">
				<imports>
					<include path="META-INF**" />
					<include path="org**" />
				</imports>
			</module>
			<module name="org.springframework.data">
				<imports>
					<include path="META-INF**" />
					<include path="org**" />
				</imports>
			</module>
			<module name="org.crazycake">
				<imports>
					<include path="META-INF**" />
					<include path="org**" />
				</imports>
			</module>
			<module name="commons-fileupload">
				<imports>
					<include path="META-INF**" />
					<include path="org**" />
				</imports>
			</module>
			<module name="org.codehaus.jackson">
				<imports>
					<include path="META-INF**" />
					<include path="org**" />
				</imports>
			</module>
			<module name="redis.clients">
				<imports>
					<include path="META-INF**" />
					<include path="org**" />
				</imports>
			</module>
			
			<module name="org.eclipse.persistence">
				<imports>
					<include path="META-INF**" />
					<include path="org**" />
				</imports>
			</module>
			
			
			<module name="commons-lang">
				<imports>
					<include path="META-INF**" />
					<include path="org**" />
				</imports>
			</module>
			<module name="org.apache.commons.commons-pool2">
				<imports>
					<include path="META-INF**" />
					<include path="org**" />
				</imports>
			</module>
			<module name="org.springframework">
				<imports>
					<include path="META-INF**" />
					<include path="org**" />
				</imports>
			</module>
			
		</dependencies>
	</sub-deployment>
</jboss-deployment-structure>

而tomcat自带的一些jar包在lib下。



当tomcat启动的时候讲会加载这些jar包。目前了解到,tomcat没有按需加载的机制,所以工程中一些公共的运行时jar包放到这里会全部加载。


扩展:

Java中有三种xAR文件:JAR/WAR/EAR

JAR:Java ARchieve

WAR:Web ARchieve

EAR:Enterprise ARchieve

用UML类图表示他们之间的关系:




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值