Mvn не может заставить причал работать локально, продолжает возвращать 503 или 403 - PullRequest
0 голосов
/ 24 ноября 2018

Я установил maven и appengine для Java, но у меня не получается заставить работать локально.Либо я получаю 503 или 403 ошибку HTTP при доступе к localhost: 8080.Я не использую eclipse, и предпочел бы не (я использую vim)

Вот мой файл web.xml

<?xml version="1.0" encoding="utf-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
             http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
      </welcome-file-list>
        <security-constraint>
            <web-resource-collection>
                <url-pattern>/*</url-pattern>
            </web-resource-collection>
            <user-data-constraint>
                <transport-guarantee>CONFIDENTIAL</transport-guarantee>
            </user-data-constraint>
        </security-constraint>
    </web-app>

Когда я запускаю mvn jetty:run все строится без проблем, ноЯ получаю

HTTP ERROR 403
Problem accessing /. Reason:

    !Secure

при доступе к localhost: 8080.Мне нужно ограничение безопасности при развертывании в GAE, но я не могу найти способ использовать ту же конфигурацию с Jetty локально.

Это мой appengine-web.xml выглядит

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
    <runtime>java8</runtime>
    <threadsafe>true</threadsafe>
        <static-files>
            <include path="/**.html"></include>
            <include path="/images/**.png"></include>
            <include path="/js/**.js"></include>
            <include path="/css/**.css"></include>
            <include path="/manifest.json"></include>
        </static-files>
    <system-properties>
        <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
    </system-properties>
</appengine-web-app>

И мой pom.xml имеет

<plugin>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>9.4.14.v20181114</version>
            </plugin>

У меня только один сервлет в приложении, url is / userapi, и все работает нормально при использовании mvn appengine: run, с помощью этой команды я могу получить доступ к localhost: 8080 и все работает.Но так как я не могу получить приложение для горячей перезагрузки, я подумал, что Джетти может сделать свое дело.Но как?

Обновление Я понял appengine: run действительно запускается с функцией горячей замены

Полная проверка веб-приложения на месте каждые 10 секунд.

и я могу изменить его, используя

<plugin>
        <groupId>com.google.cloud.tools</groupId>
        <artifactId>appengine-maven-plugin</artifactId>
        <version>1.3.1</version>
        <configuration>
            <project>grocery-monkey</project>
            <version>1</version>
                        <jvmFlags>
                            <jvmFlag>-Xdebug</jvmFlag>
                            <jvmFlag>-Dappengine.fullscan.seconds=10</jvmFlag>
                        </jvmFlags>
        </configuration>
      </plugin>

, изменив его с 5 до 10 секунд, что отражено в сообщении журнала.Но локальные изменения не подобраны.Я попытался изменить небольшую вещь в сервлете, но это изменение не отразилось на моем локальном / тестовом сервлете

...