2016-10-24 11 views
3

私は、既存のマルチモジュールのGradleベースのGoogle App Engine(GAE)プロジェクトを持っています。これは、当初https://github.com/GoogleCloudPlatform/appengine-modules-sample-javaに基づいていました。Google Cloud Endpointsフレームワークへの移行

このプロジェクトには、Cloud Engine for Cloud Endpointsがあり、Cloud Endpoints Framework(「クラウドエンドポイントバージョン2」)に移行しています。私はこれらの変更を意味し、https://cloud.google.com/endpoints/docs/frameworks/java/required_filesを追っ:

build.gradle

+  compile 'com.google.endpoints:endpoints-framework-auth:1.0.0-beta.10' 
+  compile 'com.google.endpoints:endpoints-management-control-appengine:1.0.0-beta.10' 

のappengine-web.xmlの

+  <env-variables> 
+    <env-var name="ENDPOINTS_SERVICE_NAME" value="myproject.appspot.com" /> 
+  </env-variables> 

web.xmlの

+  <!-- Endpoints service config from service management --> 
+  <filter> 
+    <filter-name>endpoints-api-configuration</filter-name> 
+    <filter-class>com.google.api.control.ServiceManagementConfigFilter</filter-class> 
+  </filter> 
+  <filter-mapping> 
+    <filter-name>endpoints-api-configuration</filter-name> 
+    <servlet-name>api</servlet-name> 
+  </filter-mapping> 
+ 
+  <!-- Endpoints logging and monitoring --> 
+  <filter> 
+    <filter-name>endpoints-api-controller</filter-name> 
+    <filter-class>com.google.api.control.extensions.appengine.GoogleAppEngineControlFilter</filter-class> 
+    <init-param> 
+      <param-name>endpoints.projectId</param-name> 
+      <param-value>myproject</param-value> 
+    </init-param> 
+    <init-param> 
+      <param-name>endpoints.serviceName</param-name> 
+      <param-value>myproject.appspot.com</param-value> 
+    </init-param> 
+  </filter> 
+  <filter-mapping> 
+    <filter-name>endpoints-api-controller</filter-name> 
+    <servlet-name>api</servlet-name> 
+  </filter-mapping> 

(私はここでは議論しないであろうhttps://cloud.google.com/appengine/docs/java/endpoints/migratingに一部をやった)しかし、「GradleのappengineRun」を使用してそれを実行しようとしたとき、私はこのエラーが発生した:

Oct 24, 2016 8:53:12 AM com.google.appengine.tools.development.SystemPropertiesManager setSystemProperties 
    INFO: Overwriting system property key 'java.util.logging.config.file', value '/Users/username/.gradle/appengine-sdk/appengine-java-sdk-1.9.42/config/sdk/logging.properties' with value 'WEB-INF/logging.properties' from '/Users/username/Documents/code/myproject/web/ear/build/exploded-app/default-1.0/WEB-INF/appengine-web.xml' 
    Oct 24, 2016 8:53:12 AM com.google.appengine.tools.development.DevAppServerImpl <init> 
    INFO: Ignoring application.xml context-root element, for details see https://developers.google.com/appengine/docs/java/modules/#config 
    com.google.appengine.tools.development.EnvironmentVariableChecker$IncorrectEnvironmentVariableException: One or more environment variables have been configured in appengine-web.xml that have missing or different values in your local environment. We recommend you use system properties instead, but if you are interacting with legacy code that requires specific environment variables to have specific values, please set these environment variables in your environment before running. 
    [Mismatch environmentVariableName=ENDPOINTS_SERVICE_NAME environmentVariableValue=null appEngineWebXmlValue=myproject.appspot.com appEngineWebXmlFile=/Users/username/Documents/code/myproject/web/ear/build/exploded-app/default-1.0/WEB-INF/appengine-web.xml] 
      at com.google.appengine.tools.development.EnvironmentVariableChecker.check(EnvironmentVariableChecker.java:75) 
      at com.google.appengine.tools.development.ApplicationConfigurationManager.checkEnvironmentVariables(ApplicationConfigurationManager.java:240) 
      at com.google.appengine.tools.development.ApplicationConfigurationManager.access$000(ApplicationConfigurationManager.java:32) 
      at com.google.appengine.tools.development.ApplicationConfigurationManager$EarModuleConfigurationHandle.checkEnvironmentVariables(ApplicationConfigurationManager.java:486) 
      at com.google.appengine.tools.development.JettyContainerService.connectContainer(JettyContainerService.java:213) 
      at com.google.appengine.tools.development.AbstractContainerService.createConnection(AbstractContainerService.java:269) 
      at com.google.appengine.tools.development.AbstractInstanceHolder.createConnection(AbstractInstanceHolder.java:37) 
      at com.google.appengine.tools.development.AbstractModule.createConnection(AbstractModule.java:73) 
      at com.google.appengine.tools.development.Modules.createConnections(Modules.java:99) 
      at com.google.appengine.tools.development.DevAppServerImpl.doStart(DevAppServerImpl.java:239) 
      at com.google.appengine.tools.development.DevAppServerImpl.access$000(DevAppServerImpl.java:45) 
      at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:217) 
      at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:215) 
      at java.security.AccessController.doPrivileged(Native Method) 
      at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:215) 
      at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:277) 
      at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48) 
      at com.google.appengine.tools.development.DevAppServerMain.run(DevAppServerMain.java:225) 
      at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:216) 

が、私はこれをどのように修正すればよいです?

+0

サンプルアプリケーションで同じコマンドを実行しようとしましたが、エラーは同じでした。しかし、私はGoogleクラウドにアプリケーションを配備したときにエラーがないので、それは変です。雲はうまくいきます。私はそれがローカル開発サーバーのバグかもしれないと思う。クラウドにデプロイしてみてください。コード内のeverythinkが正常かどうかを確認してください。 – Paulo

答えて

4

私は的環境変数を追加しました:

オプション:

key = ENDPOINTS_SERVICE_NAME 
value = myproject.appspot.com 

here how to add an enviroment variable

Hereは、このタグの意味を説明Googleドキュメントです。 appengine-web.xmlファイルでは、アプリケーションの実行時に設定される環境変数 を定義できます。ローカル環境との競合を避けるために

、 開発サーバーは、この ファイルに基づいて環境変数を設定し、ローカル環境が既に一致する値に設定 これらの変数を持っている必要がありません。

+0

右だが奇妙 – aqquadro

関連する問題