Java 如何在Spring Boot嵌入式服务器(tomcat)中部署现有web应用程序(WAR)

Java 如何在Spring Boot嵌入式服务器(tomcat)中部署现有web应用程序(WAR),java,spring-boot,embedded-tomcat-7,Java,Spring Boot,Embedded Tomcat 7,我有一个允许动态生成web应用程序(WAR)的应用程序,我想在服务器上部署这些应用程序来测试它们,我想把它们放在spring的同一个嵌入式服务器上,下面是我如何用一个简单的主java解决这个问题的 public class Main { private final static Logger logger = LoggerFactory.getLogger(Main.class); private final static File catalinaHome = new File

我有一个允许动态生成web应用程序(WAR)的应用程序,我想在服务器上部署这些应用程序来测试它们,我想把它们放在spring的同一个嵌入式服务器上,下面是我如何用一个简单的主java解决这个问题的

public class Main {
    private final static Logger logger = LoggerFactory.getLogger(Main.class);
    private final static File catalinaHome = new File(
            "C:\\Users\\Dev\\Desktop\\demo\\userstory-2\\compiler\\patternHost");
    private static Tomcat tomcat = null;
    public static void main(String[] args) {
        tomcat = new Tomcat();
        tomcat.setPort(8080);
        tomcat.setBaseDir(catalinaHome.getAbsolutePath());
        tomcat.getHost().setAutoDeploy(true);
        tomcat.getHost().setDeployOnStartup(true);
        tomcat.getServer().addLifecycleListener(new VersionLoggerListener());
        tomcat.getHost().addLifecycleListener(new HostConfig());
        try {
            tomcat.start();
        } catch (LifecycleException e) {
            logger.error("Tomcat could not be started.");
            e.printStackTrace();
        }
        logger.info("Tomcat started on " + tomcat.getHost());
        tomcat.getServer().await();
    }
}

我怎样才能用弹簧靴做到同样的效果

我用这种方式将一个非spring应用程序转换为spring boot,它对我很有效。我可以用嵌入spring boot的tomcat运行它。希望这有帮助

SpringBoot是关于速度的,它附带了嵌入式tomcat服务器(只要您使用SpringBootStarterWeb依赖项),现在您只需要java来运行独立的SpringBoot应用程序。它减少了将war文件复制到tomcat的webapp文件夹然后启动它的手动步骤

尝试适合您的应用程序的方法

如果您的旧应用程序基于spring:

  • 创建一个新的spring boot starter web项目,并将旧的源代码复制到此新项目。修改application.properties、resources文件夹,在pom.xml文件中添加所有必需的依赖项,并将包更改为
    war
  • 执行
    mvn清洁安装
    它将生成一个war文件(带有嵌入式 tomcat)位于项目根目录的target文件夹中。现在来运行它所有你 需要做的是,在您的目标文件夹中打开terminal并运行
    java-jar\u warFileName.war
    它将启动应用程序
  • 如果您的旧应用程序不是基于spring的:

  • 再次从新的spring boot starter web项目开始,复制您的源代码,但要在spring boot中使用旧代码,首先您必须进行清理,例如将@RestController添加到控制器类,通过在适当的位置标记带有@Service或@Component的类和自动连接bean来声明bean。一旦您的代码编译良好,然后运行它,您可以使用上面的步骤2