Приложение Spring boot не запускается во внешнем tomcat (пробовал как в tomcat 8.5, так и в 10) - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь развернуть образец отдыха во внешнем tomcat, однако он не выдает никакой ошибки и не запускается и пружина. Согласно весенней документации, я следовал за тремя шагами

  1. Пакеты как война внутри пом. xml
  2. , предоставленные для spring-boot-starter-tomcat в пом. xml
  3. Расширение основного класса с помощью SpringBootServletInitializer

Когда я помещаю это в папку веб-приложения tomcat и запускаю "catalina.bat run", он говорит, что приложение успешно развернуто, но какой бы ни был URL-адрес, к которому я пытаюсь получить доступ, это не метод остальных

@SpringBootApplication
@RestController
public class HelloWorldApplication extends SpringBootServletInitializer
{
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
    {
        return application.sources(HelloWorldApplication.class);
    }
    public static void main(String[] args)
    {
        SpringApplication.run(HelloWorldApplication.class, args);
    }
    @RequestMapping(value = "/hello")
    public String helloWorld()
    {
        return "Hello World, Peter";
    }
}

и в пом. xml


        <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
     </dependency>


    <groupId>com.example</groupId>
        <artifactId>HelloWorld</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>HelloWorld</name>
        <description>Demo project for Spring Boot</description>
        <packaging>war</packaging>

и application.properties:

*

server.servlet.context-path=/sample

*

Журналы Tomcat:

    15-Mar-2020 23:06:46.219 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [C:\softwares\apache-tomcat-10.0.0-M1\webapps\HelloWorld-0.0.1-SNAPSHOT.war]
    15-Mar-2020 23:06:48.102 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
    15-Mar-2020 23:06:48.409 WARNING [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [270] milliseconds.
    15-Mar-2020 23:06:48.440 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [C:\softwares\apache-tomcat-10.0.0-M1\webapps\HelloWorld-0.0.1-SNAPSHOT.war] has finished in [2,221] ms

Я попытался получить доступ следующими способами. Но ни один из них не сработал. Может ли кто-нибудь направить меня в правильном направлении?

localhost:8080/HelloWorld-0.0.1-SNAPSHOT
localhost:8080/HelloWorld-0.0.1-SNAPSHOT/hello
localhost:8080/HelloWorld-0.0.1-SNAPSHOT/HelloWorldApplication/helloWorld

Ответы [ 2 ]

1 голос
/ 16 марта 2020

Ваш путь настроен в этих функциях

@RequestMapping(value = "/hello")
public String helloWorld()
{
    return "Hello World, Peter";
}

Это означает, что единственное, что вы можете получить, это "/hello". Доступ к localhost:8080/HelloWorld-0.0.1-SNAPSHOT не будет работать, вам нужно получить доступ к localhost:8080/${context-path}/${your-path}, в этом случае localhost:8080/sample/hello

0 голосов
/ 16 марта 2020

попробуйте так

localhost: 8080 / app-name / hello

В вашем пом. xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>it.group.id</groupId>
    <artifactId>artifactId</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.5.RELEASE</version>
        <relativePath/> <!-- lookup parent fdaotory -->
    </parent>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>

        <!--For Build War File-->
        <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-tomcat</artifactId>
             <scope>provided</scope>
        </dependency>



    </dependencies>
    <build>
        <!--DEV-->
        <finalName>app-name</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

            <!--For Build War File-->
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.2</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>

        </plugins>

    </build>

</project>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...