2017-04-20 8 views
0

私はこの質問に関する回答に従ってみましたが、私のために働いていませんでした。GWT RPC with phonegap

私は実際のAndroid携帯電話でphonegapで実行しようとしているGWTの簡単なhelloworldアプリを持っています。

私は自分のGWTアプリケーションをコンパイルして、wwwフォルダの下にwarフォルダの内容を置いています。

携帯電話でphonegap経由でプロジェクトを実行します。私はPhoneGapの中で見

アドレスは次のとおりです。このアプリは実行されているhttp://192.168.15.118:3000/

私はこれを私のコードで行いました。

PhonegapUtil.prepareService((ServiceDefTarget) service, "http://192.168.15.118:3000/hellogap/", "greet"); 

service.greetServer(....

"hellogapは、" 私のモジュール名である(その必要に応じて自分のプロジェクト名は、HelloGapある)

私は日食からRPCを実行すると、すべてがOKです。私は私の携帯電話では、RPCを実行すると 、それは言う:

    Server replies: 
      404 Not Found Cannot POST /hellogap/greet 

私は私が間違ってやっている何のヒントを得ることができる場合..

おかげ

+0

devモードまたはプロダクションモードで実行していますか? devモードの "bindaddress"パラメータ(デフォルトでは、localhost以外のホストのクライアントからの接続を許可しない)に注意してください。 エラーメッセージには404と接続タイムアウトがないと表示されているため、これは原因ではありませんが、それは価値があります。 – Andrei

答えて

0

次のことを知っていなければならないのPhoneGapを使ってAndroidアプリでのWebブラウザのような戦争にアクセスするには、

1)のApache Tomcatなど、私は、Apache Tomcatを使用していますように、サーバーにあなたの戦争を展開しコンパイルした後私の戦争をwebappsフォルダに展開します。

2)あなたのIPはパブリックIPである必要がありますので、どこからでも戦争にアクセスできます。戦争と携帯電話のインターネットが同じネットワークになっていることを確認してください。

3)あなたが道に従うことによって実装することができますMainActivityでのPhoneGapプロジェクトから戦争にアクセスするために、あなたがあなたの中で使用するすべてのサーブレットが戦争にアクセスするための多くの方法があるが、私はこれを好む、このアプローチにより、

 @Override 
public void onCreate(Bundle savedInstanceState) { 
    try { 
     /* 
     * This is one way to access war 
     * super.onCreate(savedInstanceState); 
     * super.loadUrl("file:///android_asset/www/CustomAppHost.html"); 
     */ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     WebView webView = (WebView) findViewById(R.id.webView1); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.loadUrl("https://www.google.com");//here you can specify your war url 

     webView.setWebViewClient(new WebViewClient() { 
      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       view.loadUrl(url);//here you can specify your war url 
       return false; 
      } 
     }); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

プロジェクトがうまくいく、私はこれがあなたを助けるはずだと思います..

0

Divide et impera!

電話側:yahoo weather api(https://query.yahooapis.com/v1/public/yql?q=select%20wind%20from%20weather.forecast%20where%20woeid%20in%20(select%20woeid%20from%20geo.places(1)%20where%20text%3D%22chicago%2C%20il%22)&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys)のように、正常に動作していることがわかっているサービスを呼び出します。

サーバ(コンピュータ)側:ブラウザで、またはローカルで実行されている同じGWTアプリでapi urlを呼び出してみます。

どのようになっているのか見てみましょう。質問にはさまざまな問題がありますので、少し絞る必要があります。