Ошибка 404 при развертывании весенней загрузки в Google App Engine Flexible Env - PullRequest
0 голосов
/ 05 октября 2018

Я сталкиваюсь с проблемой при развертывании приложения весенней загрузки в гибком окружении движка приложений Google.Я просто хочу развернуть только в гибкой среде GAE, потому что у меня уже запущена какая-то служба (в том же проекте gcp).Поэтому я хочу развернуть его как новый отдельный сервис, в котором я могу настроить файл отправки для запуска микросервисной системы.

Exception in thread "main" java.lang.IllegalStateException: No Available Context
    at com.google.cloud.runtimes.jetty9.DeploymentCheck.lifeCycleStarted(DeploymentCheck.java:46)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.setStarted(AbstractLifeCycle.java:179)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:69)
    at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1511)
    at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1438)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1437)

Я попробовал решение после этого поста Jetty не может запустить приложение весенней загрузки в appengine Flexible

но пока не удалось.

Мой файл pom.xml ниже:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
    <relativePath /> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <maven.compiler.source>${java.version}</maven.compiler.source> <!-- REQUIRED -->
    <maven.compiler.target>${java.version}</maven.compiler.target> <!-- REQUIRED -->
</properties>


<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>tomcat-juli</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jetty</artifactId>
        <scope>provided</scope>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>web-socket</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

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

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>

    <dependency>
        <groupId>com.zaxxer</groupId>
        <artifactId>HikariCP</artifactId>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

    <dependency>
        <groupId>postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>9.1-901.jdbc4</version>
    </dependency>

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                    <configuration>
                        <mainClass>com.kevin.SpringJqgridApplication</mainClass>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <version>9.4.6.v20170531</version>
        </plugin>
        <!-- START plugin -->
        <plugin>
            <groupId>com.google.cloud.tools</groupId>
            <artifactId>appengine-maven-plugin</artifactId>
            <version>1.3.1</version>
        </plugin>
        <!-- END plugin -->
    </plugins>
</build>

Кто-нибудь может помочь решить эту проблему?Спасибо.

1 Ответ

0 голосов
/ 10 декабря 2018

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

  1. У вас есть структура каталогов / файлов, которая выглядит примерно так: webapp/WEB-INF/appengine-web.xml?Если у вас есть этот файл и вы используете для развертывания плагин maven, он может попытаться выполнить развертывание в качестве стандартного и вызвать ошибку IllegalStateException.Решение: полностью удалить каталог webapp (он используется только для стандартной конфигурации AppEngine).Лично это было решением проблемы IllegalStateException, которую я получил сегодня утром.

  2. У меня была такая же проблема в другом приложении, и решение состояло в том, чтобы убедиться, что у вас есть ServletInitializer, требуемый Jetty, в приложении Spring Boot в AppEngine.Подробнее об этом здесь .

  3. Вы уверены, что приложение Spring Boot работает правильно?Я получил эту ошибку, когда не смог предоставить необходимые переменные среды, что вызывало проблемы при попытке приложения.Один (рабочий) пример может выглядеть примерно так, обеспечивая добавление соответствующих переменных среды в app.yaml:

app.yaml:

env_variables: SPRING_PROFILES_ACTIVE: "qa"

application.properties:

spring.profiles.active="${SPRING_PROFILES_ACTIVE}"

В обоих случаях я не включил зависимость от молнии при загрузке, вместо этого мой build.gradle выглядел примерно так:

compile(group: 'javax.servlet', name: 'javax.servlet-api', version: '4.0.1')
compile(group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.0.2.RELEASE') {
    // GAE runs on Jetty, not Tomcat, must manually disable
    exclude(group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat')
}
compile(group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: '2.0.5.RELEASE')
compile(group: 'com.google.appengine', name: 'appengine-api-1.0-sdk', version: '1.9.63')
compile(group: 'org.projectlombok', name: 'lombok', version: '1.18.2') {
    exclude(group: 'org.slf4j', module: 'jul-to-slf4j')
}
...