您的位置:首页 > 其它

JBOSS EAP 6 系列六 公共模块的jar配置到jboss的modules详细配置

2015-05-31 13:21 239 查看
公司项目中遇到并要解决的问题

1:原则上除了自己写的代码之外,公共的jar不应该都在打包的时候打包到ear里面,这样的话包太大,也不符合的分层的逻辑,在jboss容器内部,每个ear的包重复jar都会调入jboss内部,而造成浪费过多地的服务器资源,会出现不定期的异常。

2:jboss eap 6.*系列,需要模块化配置,需要加载的jar,解决如何在jboss里面配置

3:公共的jar在jboss里面已经配置,加载……但是源码运行的时候不能根据maven的配置,加载jar的路径的问题

第一步:配置模块

配置mysql和oracle驱动的方式,详情看我的博客不在重复
/article/1368367.html

我们现在把相关的spring的公共的jar、shiro等等抽取到jboss模块中配置,在自己的jboss下的modules模块中,添加相关的jar的配置即可



第二步:需要在每一条线的war\core\parent的pom文件对jar的依赖添加

<scope>provided</scope>


这句话的意思就是在我们开发、编译的时候会加载jar,在打包的时候不会打入到ear包内部,而会自动通过容器提供的jar来加载
如下

War修改

<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<scope>provided</scope>
		</dependency>

<dependency>
			<groupId>commons-lang</groupId>
			<artifactId>commons-lang</artifactId>
			<version>2.6</version>
			<scope>provided</scope>
		</dependency>
<dependency>
			<groupId>org.apache.shiro</groupId>
			<artifactId>shiro-cas</artifactId>
			<version>${shiro.version}</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>net.sf.ehcache</groupId>
			<artifactId>ehcache-core</artifactId>
			<version>${ehcache.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
		<groupId>org.jasig.cas.client</groupId>
			<artifactId>cas-client-core</artifactId>
			<version>${cas.version}</version>
			<scope>provided</scope>
		</dependency>
<dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
			<version>1.3.1</version>
			<scope>provided</scope>
		</dependency>

每个系统的parent的pom文件,修改完组长记得deploy一份

<dependency>
				<groupId>org.hibernate</groupId>
				<artifactId>hibernate-core</artifactId>
				<version>${hibernate.version}</version>
				 <scope>provided</scope>
			</dependency>
			

			<dependency>
				<groupId>org.codehaus.jackson</groupId>
				<artifactId>jackson-mapper-asl</artifactId>
				<version>1.9.13</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-webmvc</artifactId>
				<version>${spring.version}</version>
				 <scope>provided</scope>
			</dependency>

			<dependency>
				<groupId>javax</groupId>
				<artifactId>javaee-api</artifactId>
				<version>${javaee-api.version}</version>
				<scope>provided</scope>
			</dependency>

第三步:ear中添加对jar包的路径的加载配置,修改ear中的jboss-deployment-structure.xml

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
	<sub-deployment name="itoo-authority-role-web-0.0.1-SNAPSHOT.war">
		<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.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>

第四步
这样的话,我们大部分的公共的jar都不会打入到ear包中,现在的测试的ear经过咱们整合之后,会在6M左右

总结
整个解决问题的过程中,更多的是查找英文资料和文档,相信解决问题的办法总比困难多……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: