2013-11-21 14 views
6

私はGoogle AppEngineで複数のモジュールを使用しており、異なるモジュールに割り当てられたポートが常に同じになるように開発サーバー(javaバージョン)を実行できるかどうか疑問に思っていましたか?現時点では彼らはランダムであるようです。これらの港を決めることはできますか?私はモジュール間のコミュニケーションを(開発の観点から)持続可能な方法で確立できるようにしたいと考えています。現時点で2つのモジュールがある場合は、それらをAとBとしましょう。モジュールAで公開されているサービスをモジュールBで使用したい場合は、モジュールBからどのURLをヒットするのかを簡単に知る方法はありません。開発サーバー上のGAEモジュール

答えて

-2

このシナリオではmodules serviceが役に立ちますが、それがうまくいくと思いますが、私は少し違った方法で問題を解決します。

ビルドスクリプトを変更してlocalhost上のすべてのモジュールを実行しましたが、異なるポート(基本的にはいくつかのローカルappengineインスタンスが動作しています)を実行しました。コンフィギュレーション情報(IP:PORT)はコンフィギュレーションファイルに保存され、どのモジュールでも簡単にアクセスできます。デプロイメントのために私はまだアプリケーションをの耳アーカイブにパッケージします。

+0

設定を共有できますか? –

+0

どのようにモジュールごとに異なるポートを設定できましたか? – Gapipro

+2

これは、確立されたプラクティスやGoogle独自のドキュメントとはまったく異なるアプローチを推奨しているため、有用な答えではありません。最高の答えはノンカイキです。正式なGoogleのサンプルアプリケーションがそうしているとおりです。 –

1

Googleがこの問題に簡単にアプローチできるとは思わない。 the modules serviceを使用し、LinkFactoryのようなヘルパークラスにgetLinkToA(String)getLinkToB(String)のようなメソッドでラップして、モジュールへのリンクを作成しているすべての場所に貼り付ける必要があります。

the dispatch fileを使用すると、それ以上の問題が発生します。開発サーバーでルーティングが機能していないため、フロントエンドアプリケーションの一部が失敗する可能性があるため、これは実際にはより大きな問題です。

+0

は、簡単に開始することが大きな問題であることを認めなければなりません。 –

8

JVMパラメータを使用して各モジュールのポートを設定することができます。その後、devserverに対応するログ:私はMVNのAppEngineを実行すると

<plugin> 
    <groupId>com.google.appengine</groupId> 
    <artifactId>appengine-maven-plugin</artifactId> 
    <configuration> 
     <jvmFlags> 
     <jvmFlag>-Ddatastore.backing_store=${project.basedir}/target/local_db.bin</jvmFlag> 
     <jvmFlag>-Xdebug</jvmFlag> 
     <jvmFlag>-Dcom.google.appengine.devappserver_module.analysis.port=8081</jvmFlag> 
     <jvmFlag>-XX:MaxPermSize=512m</jvmFlag> 
     <jvmFlag>-agentlib:jdwp=transport=dt_socket,address=8001,server=y,suspend=n</jvmFlag> 
     </jvmFlags> 
     <enhancerApi>JPA</enhancerApi> 
     <fullScanSeconds>2</fullScanSeconds> 
    </configuration> 
</plugin> 

:私は次のような構成(私のオーダーメイドのモジュールは、 "分析" と呼ばれている)とのappengine-のmaven-プラグインを使用

-Dcom.google.appengine.devappserver_module.{module_name}.port=8081 

そのモジュールは次のようなものです:

[INFO] INFO: Started [email protected]:8081 
[INFO] Jun 10, 2014 10:44:16 AM com.google.appengine.tools.development.JettyContainerService startHotDeployScanner 
[INFO] INFO: Full scan of the web app in place every 2s. 
[INFO] Jun 10, 2014 10:44:16 AM com.google.appengine.tools.development.AbstractModule startup 
[INFO] INFO: Module instance analysis is running at http://localhost:8081/ 
[INFO] Jun 10, 2014 10:44:16 AM com.google.appengine.tools.development.AbstractModule startup 
[INFO] INFO: The admin console is running at http://localhost:8081/_ah/admin 
[INFO] Jun 10, 2014 11:44:16 AM com.google.appengine.tools.development.DevAppServerImpl doStart 
[INFO] INFO: Dev App Server is now running 

私は助けてくれることを願っています。

2

モジュールのポートは、モジュールのappengine-web.xmlファイルのシステムプロパティで設定できます。たとえば、

<appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> 
    <module>MY_MODULE</module> 
    <version>v1</version> 
    <threadsafe>true</threadsafe> 
    <system-properties> 
     <property name="com.google.appengine.devappserver_module.MY_MODULE.port" 
      value="8081"/> 
    </system-properties> 
</appengine-web-app> 
関連する問題