spring boot 外部容器tomat、jboss部署

1 篇文章 0 订阅

最近微服务比较火,小明我也学习下Spring Boot框架的使用。

首先创建一个项目,创建时选择Spring Initializr,然后Next,如下图:

填写项目信息,如下图:

下一步:

点击finish完成

OK,项目创建成功之后接下来我们来看看这个东西要怎么样去运行。首先我们看到在项目创建成功之后,在项目的根目录下会有一个artifactId+Application命名规则的入口类,如下图:

直接点击运行:

浏览器访问:

OK,至此,我们一个简单的Spring Boot工程已经创建出来了。

考虑到公司服务器使用jboss部署的,所以本地用tomcat、jboss启动一下

直接idea配置tomcat启动后浏览器访问报404错误,

问题解决:

第一步:

   新建一个SpringBootStartApplication 继承自 SpringBootServletInitializer

 作用:因为在外部容器部署的话,就不能依赖于Application的main函数了,而是要以类似于web.xml文件配置的方式来启动Spring应用上下文,

    此时我们需要在启动类中继承SpringBootServletInitializer并实现configure方法,这个类的作用与在web.xml中配置负责初始化Spring应用上下文的监听器作用类似

【注意】:这个新建的类,与springboot的启动类是同级的

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

public class SpringBootStartApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Springboot3Application.class);
    }
}

第二步:

   修改pom.xml文件,让springboot内嵌的tomcat在运行时不起作用

<!-- 使用外部tomcat 启动 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <!-- provided 表明该包只在编译和测试的时候使用,去除默认的tomcat -->
            <scope>provided</scope>
        </dependency>
pom文件修改打成war包:
<packaging>war</packaging>

启动tomcat

访问成功:

下面我们配置下jboss再启动下试试:

启动报错,这是为什么呢?

之前搭建springMVC项目的时候也踩过JBOSS的坑,我感觉我都能针对JBOSS专门写一篇部署注意事项的博客了,MVC项目踩得坑可以详见我的另一篇博客:https://blog.csdn.net/qq_19201215/article/details/98033743

这次我在WEB-INF下加上了配置文件:jboss-deployment-structure.xml

但是内容有变化:

<?xml version='1.0' encoding='UTF-8'?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1">
  <deployment>
    <exclusions>
      <module name="org.slf4j" />
      <module name="org.slf4j.impl" />
      <module name="org.apache.commons.logging" />
      <module name="com.fasterxml.jackson.datatype.jackson-datatype-jdk8" />
      <module name="com.fasterxml.jackson.datatype.jackson-datatype-jsr310" />
      <module name="com.fasterxml.jackson.core.jackson-annotations" />
      <module name="com.fasterxml.jackson.core.jackson-core" />
      <module name="com.fasterxml.jackson.core.jackson-databind" />
      <module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" />
      <module name="org.jboss.resteasy.resteasy-jackson2-provider" />
      <module name="com.alibaba.fastjson" />
      <module name="javax.xml.bind.jaxb-api" />
      <module name="org.apache.logging.log4j.log4j-api" />
    </exclusions>
    <module-alias name="deployment.springboot-3"/>
  </deployment>
</jboss-deployment-structure>

然后再添加jboss-web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
   <!-- For context -->
   <context-root>/</context-root>
</jboss-web>

重新启动成功!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值