Maven を使用して Java で Google Cloud Endpoints のスタート ガイドに従っていますが、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
私はそれが空であることにも気づきます。
パッケージ構造とクラスの内容は別として、私が知る限り、上記のリンクのガイドに従って手紙を書きました。
編集:
Dan への返信として、私の 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 の目標がそれを処理してくれると思いました。