原文出自于:http://blog.csdn.net/liutengteng130/article/details/41622681 感谢!
这几天在搭框架中仅仅是JBOSS就遇到了很多问题,这些问题我们在解决中。
原来JBOSS用的是5.0的版本,现在JBOSS一下升级到了7.3的版本,这是一个很大的跨越。从启动的速度上来说无疑是越来越快的,从目录结构上有很大的不同,从运行的机制上也很不一样。
JBOSS AS 5:第二代基于服务的架构;组件更新,支持分布式事物和全面的web服务栈的支持等等。
JBOSS 7的特点:轻量级;具有模块化的核心、支持热部署、增量部署;优雅的管理;集群域的管理;First Class components。
单是从特点上来看,JBOSS7的这些特点是我们想要达到的效果。
这些天在部署项目的时候遇到很多问题,因为JBOSS7具有模块化的核心,所以我们每次在部署的时候都要各种扔Jar包,否则就会报错:
ERROR [org.jboss.as.server] (DeploymentScanner-threads - 1) JBAS015870: 部署 "gx_core.jar" 的部署被回滚并带有下列错误消息:
{
"JBAS014671: 失败的服务" => {"jboss.deployment.unit.\"gx_core.jar\".INSTALL" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"gx_core.jar\".INSTALL: JBAS018733: 处理 INSTALL 的 deployment \"gx_core.jar\" 阶段失败
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS011047: 组件 Base.eao.impl.BaseEaoImpl 的组件类 StudentImpl 有错误:
JBAS011440: 无法在 jc.entity 里找到一个名为 deployment \"gx_core.jar\" 的持久化单元"},
"JBAS014771: 具有丢失/不可用依赖关系的服务" => [
"jboss.naming.context.java.comp.gx_core.gx_core.StudentImpl.ValidatorFactory 缺少 [jboss.naming.context.java.comp.gx_core.gx_core.StudentImpl]",
"jboss.naming.context.java.comp.gx_core.gx_core.common_EaoBean.ValidatorFactory 缺少 [jboss.naming.context.java.comp.gx_core.gx_core.common_EaoBean]",
"jboss.naming.context.java.comp.gx_core.gx_core.StudentImpl.Validator 缺少 [jboss.naming.context.java.comp.gx_core.gx_core.StudentImpl]",
"jboss.naming.context.java.comp.gx_core.gx_core.common_EaoBean.Validator 缺少 [jboss.naming.context.java.comp.gx_core.gx_core.common_EaoBean]"
]
}
首先介绍一下JBOSS的目录结构:
modules: 因为 JBoss 7 是一个模块化的服务器,应用服务器的模块对应这里的一个子目录
standalone目录下面存放standalone模式的配置文件、部署内容和可写区域等。
由于JBOSS7是模块化服务器,所以我们往deployments里面部署完Jar包后会提示找不到依赖关系。故我们需要往模块里面添加对应的Jar的子目录:
附deployments的部署目录:
这样部署完之后再发布就没有问题了。但是这样做肯定是不行的,步骤太繁琐了,需要找出一个更简单,方便的方式来解决这个问题。JBOSS版本提升,基于它的这些特点说明我们遇到的这些问题肯定有一个很好的解决方案,只是现在我们还没有发现。希望哪位大神给点建议。