Jboss部署Springboot项目

Jboss部署Springboot项目

示例项目地址:https://gitee.com/refiner/jboss-demo

环境

  • jboss-as-7.1.1.Final
  • JDK1.7

说明:Jboss7.1与高版本的JDK1.8是不兼容的。如果服务器或本地以Jboss1.7作为web容器且安装的是JDK1.8,那么你推荐将JDK换成1.8以下的,可以是1.7的。当然如果你不想将安装好的JDK卸载掉,也可以使用记事本进入到Jboss的安装目录下,找到bin目录下的文件 standalone.bat (Windows)或者 standalone.sh (Linux),打开文件后找到 java_home 变量设置它的值为你jdk1.7的安装路径,(前提是你的jboss环境变量配置正确, JBOSS_HOME 你的jboss路径path,加 %jboss_home%\bin )。

当然,如果是使用的Jboss8(已更名为WildFly),就可以使用JDK1.8或OpenJDK8

Springboot项目

  • 使用框架SpringBoot + Shiro简单的项目

对Springboot项目l做一定处理

修改启动方式

@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer implements WebApplicationInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(DemoApplication.class ).bannerMode(Banner.Mode.OFF);
    }

    public static void main(String[] args) {
        new SpringApplicationBuilder(DemoApplication.class).run(args);
    }

}

修改pom.xml文件

  • 修改打包方式为war
<packaging>war</packaging>
  • 去除Springboot项目中内置tomcat,并增加servlet依赖
<!-- spring 依赖 -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
	<!-- 移除嵌入式tomcat插件 -->
	<exclusions>
		<exclusion>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
		</exclusion>
	</exclusions>
</dependency>
<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>javax.servlet-api</artifactId>
	<version>3.1.0</version>
	<scope>provided</scope>
</dependency>
  • 修改guava包的版本以适配JDK1.7(如果没有使用到guava则跳过)
<!-- 如果某个模块使用了更高版本的guava,请将高版本的guava排除 -->
<dependency>
	<groupId>com.google.guava</groupId>
	<artifactId>guava</artifactId>
	<version>20.0</version>
</dependency>
  • 如果使用了mysql-8.x.x版本的jar,也请进行修改(如果没有使用到则跳过)
<!-- 如果使用了mysql-connector-java.8.x.x的版本的依赖,也请将其排除 -->
<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>5.1.47</version>
</dependency>

增加适配Jboss的配置文件

说明:这些配置文件放置在webapp/WEB-INF目录下(webapp和resources文件夹同级),如果不存在此目录,手动进行创建

  • web.xml

说明:Jboss仍然需要web.xml中的filter配置来为shiro权限框架的引导,不能通过@Bean的方式注入

<!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <!--shiro安全认证过滤器,filter-name的值会在spring(或springMVC)的配置文件中使用-->
    <filter>
        <filter-name>shiroFilter</filter-name>
        <!--使用的是springWeb的拦截器代理,具体实现在springmvc-shiro中配置-->
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
        <init-param>
            <param-name>targetFilterLifecycle</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>shiroFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!-- 配置处理.do的请求并转发,如果不需要则可不配置 -->
    <!-- DispatcherServlet Config start -->
    <servlet>
        <servlet-name>springMvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <description>spring mvc 配置文件</description>
            <param-name>contextConfigLocation</param-name>
            <param-value><!-- classpath:applicationContext.xml --></param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springMvc</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    <!-- DispatcherServlet Config end -->
</web-app>
  • jboss-web.xml

说明:配置web容器的上下文路,即ContextPath

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
    <context-root>/</context-root>
</jboss-web>
  • jboss-deployment-structure.xml

说明:配置去除Jboss内置的冲突jar,如slf4j

<?xml version='1.0' encoding='UTF-8'?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1">
    <deployment>
        <exclusions>
            <module name="org.slf4j" />
        </exclusions>
    </deployment>
</jboss-deployment-structure>

说明:如果使用的是Jboss8(WildFly),则还需要排除jackson的相关依赖,如果出现其他冲突的,也可用同样的方法进行排除

<?xml version='1.0' encoding='UTF-8'?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1">
    <deployment>
        <exclusions>
            <!-- 排除slf4j -->
			<module name="org.slf4j" />
        
            <!-- 如果要排除jackson,下方的一个都不能少 -->
			<module name="com.fasterxml.jackson.core.jackson-core" />
            <module name="com.fasterxml.jackson.core.jackson-annotations" />
            <module name="com.fasterxml.jackson.core.jackson-databind" />
            <module name="com.fasterxml.jackson.datatype.jackson-datatype-jdk8" />
            <module name="com.fasterxml.jackson.datatype.jackson-datatype-jsr310" />
            <module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" />
            <module name="org.jboss.resteasy.resteasy-jackson2-provider" />
            <module name="org.jboss.resteasy.resteasy-jackson-provider" />
        </exclusions>
    </deployment>
</jboss-deployment-structure>

打包并进行启动即可

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰式的美式

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值