Я следую руководству по началу работы для конечных точек Google Cloud на Java с использованием Maven, и я не могу получить доступ к своим конечным точкам с помощью API Explorer.
По большей части я следовал руководству, хотя немного добавил структуру в свой проект. Пакет моего корневого проекта — com.ryanharter.devinfo
, а мои конечные точки — в пакете com.ryanharter.devinfo.spi
, а классы моей модели — в com.ryanharter.devinfo.beans
(это смоделировано после Mobile Backend Starter).
Я написал свой класс Endpoints и аннотировал его так:
@Api(name = "deviceinfo",
version = "v1",
namespace = @ApiNamespace(
ownerDomain = "ryanharter.com",
ownerName = "ryanharter.com",
packagePath = "devinfo")
)
public class DeviceInfoV1 {
@ApiMethod(name = "list", path = "devices", httpMethod = HttpMethod.GET)
public DeviceListDto list(QueryDto query) {
...
}
...
}
Все это выглядит нормально и соответствует другим рабочим проектам, которые у меня есть, но когда я запускаю сервер разработки, я получаю пустой экран.
Я также заметил, что мой журнал maven показывает это:
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ devinfo ---
[INFO] Compiling 8 source files to /path/to/devinfo/target/classes
[INFO]
[INFO] --- appengine-maven-plugin:1.8.7:endpoints_get_discovery_doc (default) @ devinfo ---
[INFO]
[INFO] Google App Engine Java SDK - get endpoints discovery doc...
[INFO] No Endpoints classes detected.
Я вижу, что "классы конечных точек не обнаружены". Я также заметил, что /path/to/devinfo/target/classes
пусто.
Насколько я могу судить, помимо структуры пакета и содержимого класса, я следовал руководству, указанному выше в письме.
ИЗМЕНИТЬ:
В ответ Дэну вот содержимое моего файла web.xml:
<?xml version="1.0" encoding="utf-8"?>
<web-app
version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
</web-app>
Согласно документации, указанной выше, я не касался этого. Это как раз то, что сгенерировал архетип Maven. Я видел в Интернете отчеты о необходимости вручную сопоставлять мои конечные точки в web.xml
, но документ ничего не говорит об этом, поэтому я предположил, что цель maven позаботится об этом для меня.