当前位置: 首页 > 知识库问答 >
问题:

如何转换这个spring boot示例应用程序,以便构建一个可以在外部Tomcat服务器中运行的war文件

岳昊空
2023-03-14

我正在尝试如何转换这个示例spring boot应用程序,以便生成的war文件可以在外部Tomcat服务器中运行:在此处输入链接描述

<?xml version="1.0" encoding="UTF-8"?>
<groupId>org.springframework</groupId>
<artifactId>gs-securing-web</artifactId>
<version>0.1.0</version>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.3.RELEASE</version>
</parent>

<packaging>war</packaging>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>

</dependencies>

<properties>
    <java.version>1.8</java.version>
</properties>


<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

<repositories>
    <repository>
        <id>spring-releases</id>
        <name>Spring Releases</name>
        <url>https://repo.spring.io/libs-release</url>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>spring-releases</id>
        <name>Spring Releases</name>
        <url>https://repo.spring.io/libs-release</url>
    </pluginRepository>
</pluginRepositories>

下面是我扩展SpringBootServletInitializer的新应用程序类:

package hello;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

@SpringBootApplication
public class Application extends SpringBootServletInitializer {

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

public static void main(String[] args) throws Exception {
    SpringApplication.run(ApplicationOLD.class, args);
}

}

在控制台中,我可以看到Tomcat已经启动了该应用程序:

2017-07-14 16:53:10.736信息12020---[main]hello.Application:在LAPTOP-I1Q04POH上启动应用程序V0.1.0,其PID为12020(C:\apache-tomcat-9.0.0.m22\webapps\gs-securing-web-0.1.0\web-inf\classes by akova in C:\apache-tomcat-9.0.0.m22\bin)2017-07-14 16:53:10.740信息12020---[main]hello.Application:未设置活动配置文件,返回默认配置文件:default 2017-07-14 16:53:11.012信息12020---[main]DedWebApplicationContext:刷新org.springframework.boot.context.embeddedd.annotationConfigEmbeddedWebApplicationContext@5f4f198c:启动日期[2017年7月14日16:53:11];上下文层次结构的根2017-07-14 16:53:11.209信息12020---[main]o.s.web.context.contextLoader:根WebApplicationContext:初始化在197毫秒内完成2017-07-14 16:53:11.256信息12020---[main]o.s.b.w.servlet.FilterRegistrationBean:映射过滤器:'error pagefilter‘到:[/*]2017-07-14 16:53:11.295信息12020---[main]hello.Application:在1.118秒内启动应用程序(JVM运行3.925)

但是当我在浏览器中访问url时,我看不到访问应用程序。使用URL:HTTP://localhost:8080/gs-securing-web-0.1.0/得到一个HTTP 404错误。

我错过了什么???谢谢

共有1个答案

魏健柏
2023-03-14

正如porject本身以及接下来构建这个porject的教程所述,您应该只使用这个URI:http://localhost:8080/来使用您的服务。

使用http://localhost:8080/hello和http://localhost:8080/login获取其他资源。

 类似资料:
  • 我在dockerized应用程序和Memcached上遇到了一个问题,要存储一些值,显然,当a启动一个运行Spymemcached客户端的新Docker实例时,所有存储在缓存中的数据都是无效的,所以如果我之前在节点1的缓存中存储了一些值,然后启动节点2,这些值将从Memcached服务器中清除,最后如果a在节点1上再次存储相同的值,并在节点2上查询,它们将共享到两个节点之外,而不清除数据。是预期的

  • 问题内容: 到目前为止, 我在此博客http://nowjs.com/中所读到的内容都需要在服务器计算机中安装nodejs才能起作用。但是,我使用的是共享服务器,实际上没有任何权限将某些东西放入服务器计算机。 但是,将其放入容器(tomcat)是我经常做的另一件事。一般来说,当我们说服务器时,是指tomcat或websphere或jboss。 但是,如果我没有记错的话,使用nodejs时,服务器意

  • 我想在spring boot application Inbuild embedded Server中部署opencms.war/any war文件(它不是构建在spring boot上,但可以在任何应用程序或web服务器上运行)。有人能帮我做这件事吗?

  • 我正在尝试调试应用程序的流程。因此在这个过程中,我需要调试两个运行在两个不同tomcat服务器上的应用程序(其中一个应用程序中的方法调用不同应用程序的另一个方法)。我如何在eclipse中实现这一点(可能吗)? 注意:这两个应用程序都在同一个eclipse实例中,没有任何调试配置。

  • 问题内容: 我已经将tomcat的webapps目录中的sample.war文件复制了。 我可以访问localhost:8080。 默认情况下,战争的部署是自动进行的-我已经在我的webapps文件夹中检查了提取的文件夹“ sample” 但未提取。为什么未提取war文件。请为此提供解决方案。 问题答案: 从目录中删除该战争文件。然后在您的Web浏览器中打开链接。单击“ Tomcat管理器”, 然

  • 我在eclipse IDE中有一个ant项目。Ant build在dist文件夹中创建一个war。我将war复制到Tomcat webapps文件夹并成功部署它。现在,我将Tomcat添加到eclipse中,并尝试在这里部署war,它会忽略war文件。它没有给出任何例外bu也没有做任何有用的事情。下面是完整的Tomcat日志- 它是一个动态的Web模块项目。在Eclipse中设置Tomcat时是否