当前位置: 首页 > 工具软件 > Snowdrop > 使用案例 >

使用Snowdrop在JBoss中部署Spring工程

阮昊阳
2023-12-01
向JBoss中集成Spring一直都是比较令人头疼的事情。针对所有Spring与JBoss集成时的各种问题,JBoss社区推出了一站式解决方案: JBoss Snowdrop[1]。

这个项目共分为三个组件:

[img]http://dl.iteye.com/upload/attachment/602854/28261e5c-56bc-3442-8892-91aa331918e6.jpg[/img]

分别是:
* Snowdrop Deployers
用于向JBoss中部署用Spring撰写的独立库文件。

* Snowdrop VFS
用于在JBoss中支持Spring标记及类扫描。

* Snowdrop Weaving
用于在JBoss中支持Spring的AspectJ和JPA等特性。

由于Spring 2.5.x的一些设计问题,使其类扫描和标记功能并不支持JBoss AS的虚拟文件系统(VFS)。如果我们的项目中包含这样的Spring组件:


<import resource=”classpath*:META­INF/*.xml”/>


或者是使用了Spring标记,并制定标记扫描:


<context:component­-scan base­-package=”....”/>


那么当把这样的项目部署至JBoss时,就会遇到下面的错误:


java.util.zip.ZipException: error in opening zip file at java.util.zip.ZipFile.open(Native Method)


通过使用Snowdrop VFS,我们可以解决这个问题:首先是在项目中添加所需要的snowdrop组件,针对上面的问题,需要添加的为snowdrop-vfs:


<dependency>
<groupId>org.jboss.snowdrop</groupId>
<artifactId>snowdrop-vfs</artifactId>
<version>1.0.1.GA</version>
</dependency>


需要特别注意的是,如果是在JBoss 5.x中部署Spring项目,那么就需要使用snowdrop 1.x版本,高版本的snowdrop与JBoss 5.x并不兼容。上面的例子中使用的版本是1.0.1.GA。

接下来,把项目中的web.xml的配置进行一下修改,从原来的:


<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
</servlet>


变更为:


<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<init-param>
<param-name>contextClass</param-name>
<param-value>org.jboss.spring.vfs.context.VFSXmlWebApplicationContext</param-value>
</init-param>
</servlet>


这样,就可以将用Spring项目集成部署至JBoss了。有关Snowdrop的更多使用方法,请参考Snowdrop项目文档[2] ,如果在使用方面遇到了问题,可以在Snowdrop的论坛[3]上提问获得解答。

[1] http://www.jboss.org/snowdrop
[2] http://www.jboss.org/snowdrop/documentation.html
[3] http://www.jboss.org/index.html?module=bb&op=viewforum&f=223
 类似资料: