Короче говоря, я написал сервер GlassFish в моем Intellij IDEA, однако я заметил, что мне потребуется сервер для его развертывания, поэтому я провел некоторое исследование и обнаружил, что Google App Engine (Google Cloud Platform) будет будь способ идти.
Я использовал плагин Google Cloud Tools для Intellij, чтобы добавить поддержку App Engine (Standard). Все прошло гладко, я выбрал военный файл для развертывания и Google Cloud Project для его развертывания, однако, когда я отправил запрос GET
на URL (например, localhost:8080/cases/all
), я получил сообщение об ошибке 404. Обычно это возвращает массив JSON, заполненный объектами JSON.
Я получил класс приложения следующим образом:
@ApplicationPath("/")
public class Server extends Application{
/**
* Returns all the classes in the server.
* @return Set of all classes used in server.
*/
@Override
public final Set<Class<?>> getClasses() {
HashSet h = new HashSet<Class<?>>();
// Add classes to h
return h;
}
}
Мой web.xml и мой appengine-web.xml, расположенные в ./web/WEB-INF
, выглядят соответственно:
<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">
</web-app>
И
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<runtime>java8</runtime>
<threadsafe>true</threadsafe>
</appengine-web-app>
Запуск сервера Glassfish локально работает без проблем. Как только я пытаюсь развернуть стандартный (локальный) сервер GAE, он не работает. Я больше не могу получить доступ к путям, каждый путь возвращает 404 и это сообщение в консоли Intellij (при попытке доступа (/ case / all):
jul 04, 2018 3:38:24 AM com.google.appengine.tools.development.jetty9.LocalResourceFileServlet doGet
WARNING: No file found for: /cases/all
Тип развертываемого мной артефакта Web Application: Exploded
.
Есть идеи, что я могу делать не так?