向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

使用Snowdrop在JBoss中部署Spring工程相关推荐

  1. 在Tomcat中部署seam工程

    在Tomcat中部署seam工程 众所周知,Tomcat.Resin是servlet的容器,反应迅速,启动时间快,配置简单(Resin反应应该更迅速一些),但如果用到EJB工程的的话,它们就不能胜任了 ...

  2. Linux中部署Spring Cloud项目

    Linux中部署Spring Cloud项目 文章为本人在学习的过程中,记录部署过程,仅供参考学习.因本人经验不足,教程或有不妥之处,还望指正. 保姆级教程,敬请食用!!! 简介 在学习过程中,部署时 ...

  3. (五)Debian Linux中部署Spring Boot + Vue的前后端分离项目详细过程(arm64/aarch64架构下)

    专题系列往期文章目录 (一)移动端安卓手机改造成linux服务器&Linux中安装软件踩坑历险记 (二)Debian Linux系统中安装oracle JDK1.8详细过程(arm64/aar ...

  4. 使用 Spring Boot Operator 部署 Spring Boot 到 Kubernetes

    大家好,我是DD. 2022年了,你们开始用Kubernetes了吗?那么Spring Boot应用要如何部署到Kubernetes里呢?下面给大家转了一篇不错的深度好文,一起来学习一下吧! 以下内容 ...

  5. k8s部署tomcat及web应用_部署 Spring Boot 应用到 K8S 教程

    点击上方 Java后端,选择 设为星标 优质文章,及时送达 作者:qingmu qingmu.io/2020/04/08/Spring-Boot-Operator-User-Guide/ 前言 在Ku ...

  6. eclipse--eclipse(JavaEE版本)部署Tomcat工程(转)

    介绍如何在eclipse(JavaEE版本)中部署Tomcat工程, 转自"http://www.cnblogs.com/chenjunbiao/archive/2011/12/09/228 ...

  7. 使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程(十五)

    在之前的所有Spring Boot和Spring Cloud相关博文中,都会涉及Spring Boot工程的创建.而创建的方式多种多样,我们可以通过Maven来手工构建或是通过脚手架等方式快速搭建,也 ...

  8. Spring学习9-MyEclipse中Spring工程使用@Resource注释的问题

    在MyEclipse 的Spring工程中,有时候要使用@Resource注释来驱动Spring配置.但是在MyEclipse添加Spring开发能力的操作中,并没有 把相关的库添加到工程的class ...

  9. 使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程

    在之前的所有Spring Boot和Spring Cloud相关博文中,都会涉及Spring Boot工程的创建.而创建的方式多种多样,我们可以通过Maven来手工构建或是通过脚手架等方式快速搭建,也 ...

最新文章

  1. Android镜像文件的拆解
  2. 大数据:Hive和Hbase的区别于优势
  3. java 连接 sftp失败,与apache vfs的SFTP连接失败,但使用WinSCP成功
  4. chorme插件 ,在浏览器上模拟手机,pad 查看网页|前端技术开发必备插件
  5. [Django青铜修炼手册] 初识Django
  6. web.config配置数据库连接
  7. NSDictionary NSArray 转中文输出
  8. 视频人脸检测——Dlib版(六)
  9. BlackBerry 应用程序开发者指南 第一卷:基础--第8章 本地化应用程序
  10. D1. Kirk and a Binary String (easy version)
  11. 学生表,选课表,课程表
  12. 3U VPX板卡设计
  13. uni-app平台判断 | uni app判断h5 小程序 app 等不同平台
  14. filebeat-logstash-es综合运用
  15. 聪明的猴子(BZOJ 2429)
  16. kafka配置SASL
  17. h5活动是什么意思_H5是什么,怎么用H5做运营活动?
  18. 流年祭.掩埋一场与青春有关的荒芜
  19. 基于BP神经网络算法的性别识别
  20. C语言中 *x++ (*x)++ ++*x *++x的区别

热门文章

  1. 新手小白如何自学会计?
  2. 信安数学基础:求原根指数高次同余
  3. 【数据结构】链表逆序
  4. 【教程】电信光猫烽火HG5140A怎么改桥接模式,telecomadmin超级密码
  5. 5个免费、免注册且无时长限制在线语音转换文本网站分享(收藏)
  6. MyEclipse8.6 MyEclipse注册 破解
  7. LLM大模型中文开源数据集集锦(三)
  8. checkbox标签内容太长,无法自动换行问题
  9. duilib 模仿网易云音乐
  10. 实验二 逻辑斯蒂回归