Я установил 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 секунд, что отражено в сообщении журнала.Но локальные изменения не подобраны.Я попытался изменить небольшую вещь в сервлете, но это изменение не отразилось на моем локальном / тестовом сервлете