前时间做一项目,需要在jboss EAP6.4下部署,最开始没有深入了解jboss,当时接触spring-boot框架也没多久,所以打算直接使用spring-boot进行开发,结果部署的时候出现了很多问题
1、启动失败
spring-boot用的1.4.3版本,其中默认hibernate-jpa这个jar是2.1版本,jboss-logging是3.3.0版本,但是Jboss EAP6.4下的hibernate-jpa是2.0;jboss-logging是3.1.5版本,造成冲突。
解决方法:一是更换jboss本身的jar,审计这两个版本;二是更换项目的jar,这个涉及到项目的jar非常多,但是因为不能动服务器上的jboss,所以只能修改本地,pom修改如下:
移除boot本身自带的jar。期间也有什么修改jboss-deployment-structrue.xml ,统统无效。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-juli</artifactId>
</exclusion>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
</exclusion>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.2.21.Final</version>
<exclusions>
<exclusion>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
添加版本匹配的jar包:
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
<version>3.1.3.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.2.21.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>4.2.21.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
</dependency>
这里为甚不直接降低spring-boot的版本呢,主要是spring-boot依赖的这些包都比较新,在1.1以后基本都是引用当时最新的依赖包。
2、jboss EAP6.4 不支持无web.xml部署
这一点非常重要,当时因为这个问题纠结了好几天,一直无法找到问题,最后在stackoverflow 某一个spring配置相关 的回答中找到了这个问题,spring-boot本身就是无配置化,所以开始就没往这方方面去考虑,最后添加web启动方式,项目部署成功,访问正常
@Configuration
public class WebApplicationInitializerImpl implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
XmlWebApplicationContext appContext = new XmlWebApplicationContext();
appContext.setConfigLocation("classpath:dispatcher-servlet.xml");
ServletRegistration.Dynamic dispatcher = servletContext.addServlet("dispatcher",
new DispatcherServlet(appContext));
dispatcher.setLoadOnStartup(1);
//此处一定是/*,不然会在jboss下无线重定向
dispatcher.addMapping("/*");
}
}
分享到:
相关推荐
JBoss EAP 6.4 是一款广泛应用的企业级应用服务器,尤其适合部署Web应用程序。本文主要介绍了如何配置和管理JBoss EAP 6.4,包括安装和部署FineReport、修改服务器端口、调整内存设置以及改变Web工程的根目录。 ...
JBoss EAP 6.4 是 Red Hat 提供的一个企业级应用服务器,它基于 Java EE 6 规范,提供了全面的中间件服务,用于构建、部署和管理企业级应用程序。这个版本是 JBoss 产品线的一个关键里程碑,因为它包含了众多功能...
`jboss-spring-int-vfs.jar`就是为了让Spring能够理解和利用JBoss的VFS,从而在JBoss环境下正确地处理文件资源,如加载配置文件、读写日志等。这个插件使得Spring应用无需关心具体的文件系统实现,只需遵循VFS接口,...
JBoss Enterprise Application Platform (EAP) 是 Red Hat 提供的一款开源中间件,用于构建、部署和管理企业级 Java 应用程序。JBoss EAP 7.2.6 版本是一个重要的更新,包含了多个版本的 GA(General Availability)...
这表明这两个jar文件的组合是解决特定环境下,特别是JBoss服务器启动时与Spring集成及VFS相关问题的关键。 在实际开发中,确保所有依赖库的完整性和正确性至关重要。在给出的压缩包文件列表中,除了上述的两个文件...
jboss-spring-int-vfs.jar
jboss-eap-fp-src-4.3.0.CP05_FP01.zip jboss-eap-fp-src-4.3.0.CP05_FP01.zip
JBoss EAP 7.2.0基于WildFly项目,这是一个快速迭代的轻量级应用服务器。WildFly的内核提供了高性能的模块化系统,使得EAP能够快速适应新的技术变化。 4. **安全性增强**: EAP 7.2.0引入了更强大的身份验证和...
jboss-eap-7.0.0-installer.jar~ ~
spring-boot-jboss 示例spring-boot-jboss-initial - 在 JBoss 上不起作用的初始版本。 spring-boot-jboss-final - 适用于 JBoss 的固定版本。
它能够动态更新有关热部署的规则。联系请随时与以下联系人询问我任何问题。 Drools视频教程: : 常问问题1)演示? 2)为什么我不能在开发环境中动态更新规则? 在开发阶段,不建议使用Intellij IDEA之类的工具进行...
JBoss EAP (Enterprise Application Platform) 是一款由 Red Hat 提供的企业级 Java 应用服务器,它基于开源项目 WildFly 构建而成,提供了丰富的功能和服务,适用于构建、部署和管理企业级应用程序。在实际生产环境...
下面将详细讨论JBoss EAP 7.1.0的相关知识点。 首先,JBoss EAP(Enterprise Application Platform)是基于开源项目WildFly的商业版本,它包含了对Java EE 7规范的支持。这意味着开发者可以利用EAP 7.1.0来开发符合...
标题中的"jboss-eap-5.2.0.zip"指的是JBoss EAP的5.2.0版本的压缩包,这是在JDK 1.6环境下运行的。这个版本的发布对于那些需要维护或升级旧系统的开发者来说至关重要,因为它提供了对较早技术栈的支持。 **JBoss ...
JBoss EAP 6.3.0是一款基于Java的企业级应用服务器,由Red Hat公司开发并维护,是Java EE(企业版)平台的实现。它提供了全面的中间件服务,支持多种应用程序,如Web应用程序、SOA(面向服务的架构)、交易处理、...
jboss官方下载,支持jdk8。JBoss支持EJB 1.1和EJB 2.0 EJB3.0的规范,它是一个管理EJB的容器和服务器。类似于Sun's J2SDK Enterprise Edition(J2EE),JBoss的目标是一个源代码开放的J2EE环境。但是JBoss核心服务仅...
9. **社区支持与企业服务**:作为开源项目,JBoss EAP 6.2.0拥有庞大的开发者社区,可以获取到丰富的文档、示例和社区支持。同时,Red Hat也提供了付费的企业级支持和服务,包括更新、维护和专业咨询。 在使用JBoss...
【Jboss-Spring】是一个与Java企业版服务器JBoss相关的技术框架,主要涉及Spring框架在JBoss环境中的集成和扩展。这两个核心文件`jboss-as-sprint-int-5.0.0.GA.jar`和`jboss-spring-int-vfs.jar`是实现这一集成的...
Spring Boot 在 JBoss EAP 6.x、Wildfly、Tomcat 和 Standalone 中工作 这个简单的 REST Web 服务展示了如何打包一个 spring-boot war,使其既可执行又可部署到 JBoss、Tomcat、Wildfly。 它源自的 Spring spring-...
在Linux环境下,搭建JBoss Enterprise Application Platform (EAP)的集群能够提高应用程序的可用性和可扩展性。JBoss EAP 6.4.0提供了两种运行模式:standalone(独立运行模式)和domain(域模式)。standalone模式...