使用Snowdrop在JBoss中部署Spring工程
向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*:METAINF/*.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工程相关推荐
- 在Tomcat中部署seam工程
在Tomcat中部署seam工程 众所周知,Tomcat.Resin是servlet的容器,反应迅速,启动时间快,配置简单(Resin反应应该更迅速一些),但如果用到EJB工程的的话,它们就不能胜任了 ...
- Linux中部署Spring Cloud项目
Linux中部署Spring Cloud项目 文章为本人在学习的过程中,记录部署过程,仅供参考学习.因本人经验不足,教程或有不妥之处,还望指正. 保姆级教程,敬请食用!!! 简介 在学习过程中,部署时 ...
- (五)Debian Linux中部署Spring Boot + Vue的前后端分离项目详细过程(arm64/aarch64架构下)
专题系列往期文章目录 (一)移动端安卓手机改造成linux服务器&Linux中安装软件踩坑历险记 (二)Debian Linux系统中安装oracle JDK1.8详细过程(arm64/aar ...
- 使用 Spring Boot Operator 部署 Spring Boot 到 Kubernetes
大家好,我是DD. 2022年了,你们开始用Kubernetes了吗?那么Spring Boot应用要如何部署到Kubernetes里呢?下面给大家转了一篇不错的深度好文,一起来学习一下吧! 以下内容 ...
- k8s部署tomcat及web应用_部署 Spring Boot 应用到 K8S 教程
点击上方 Java后端,选择 设为星标 优质文章,及时送达 作者:qingmu qingmu.io/2020/04/08/Spring-Boot-Operator-User-Guide/ 前言 在Ku ...
- eclipse--eclipse(JavaEE版本)部署Tomcat工程(转)
介绍如何在eclipse(JavaEE版本)中部署Tomcat工程, 转自"http://www.cnblogs.com/chenjunbiao/archive/2011/12/09/228 ...
- 使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程(十五)
在之前的所有Spring Boot和Spring Cloud相关博文中,都会涉及Spring Boot工程的创建.而创建的方式多种多样,我们可以通过Maven来手工构建或是通过脚手架等方式快速搭建,也 ...
- Spring学习9-MyEclipse中Spring工程使用@Resource注释的问题
在MyEclipse 的Spring工程中,有时候要使用@Resource注释来驱动Spring配置.但是在MyEclipse添加Spring开发能力的操作中,并没有 把相关的库添加到工程的class ...
- 使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程
在之前的所有Spring Boot和Spring Cloud相关博文中,都会涉及Spring Boot工程的创建.而创建的方式多种多样,我们可以通过Maven来手工构建或是通过脚手架等方式快速搭建,也 ...
最新文章
- Android镜像文件的拆解
- 大数据:Hive和Hbase的区别于优势
- java 连接 sftp失败,与apache vfs的SFTP连接失败,但使用WinSCP成功
- chorme插件 ,在浏览器上模拟手机,pad 查看网页|前端技术开发必备插件
- [Django青铜修炼手册] 初识Django
- web.config配置数据库连接
- NSDictionary NSArray 转中文输出
- 视频人脸检测——Dlib版(六)
- BlackBerry 应用程序开发者指南 第一卷:基础--第8章 本地化应用程序
- D1. Kirk and a Binary String (easy version)
- 学生表,选课表,课程表
- 3U VPX板卡设计
- uni-app平台判断 | uni app判断h5 小程序 app 等不同平台
- filebeat-logstash-es综合运用
- 聪明的猴子(BZOJ 2429)
- kafka配置SASL
- h5活动是什么意思_H5是什么,怎么用H5做运营活动?
- 流年祭.掩埋一场与青春有关的荒芜
- 基于BP神经网络算法的性别识别
- C语言中 *x++ (*x)++ ++*x *++x的区别