使用phonegap在GWT RPC中获取404

使用phonegap在GWT RPC中获取404,gwt,phonegap,Gwt,Phonegap,我试着按照这个问题的答案来回答,但没有一个对我有用 我在GWT中有一个简单的helloworld应用程序,我正试图在我真正的android手机上的phonegap中运行它 因此,我编译了我的GWT应用程序,并将war文件夹的内容放在我的phonegap blank项目的www文件夹下(删除了之前www文件夹中的任何内容) 我通过phonegap在手机上运行该项目 我在phonegap中看到的地址是: 此应用程序正在运行的位置 所以我在代码中这样做了 PhonegapUtil.prepareSer

我试着按照这个问题的答案来回答,但没有一个对我有用

我在GWT中有一个简单的helloworld应用程序,我正试图在我真正的android手机上的phonegap中运行它

因此,我编译了我的GWT应用程序,并将war文件夹的内容放在我的phonegap blank项目的www文件夹下(删除了之前www文件夹中的任何内容)

我通过phonegap在手机上运行该项目

我在phonegap中看到的地址是:

此应用程序正在运行的位置

所以我在代码中这样做了

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

“hellogap”是我的模块名(如果需要,我的项目名是hellogap)

当我从eclipse运行rpc时,一切都正常。 当我在手机上运行rpc时,它会显示:

                  Server replies:
             404 Not Found Cannot POST /hellogap/greet
如果我能知道我做错了什么


感谢使用Phonegap访问android应用程序中类似战争的web浏览器,您必须了解以下内容:

1) 编译后,将war部署到Apache Tomcat等服务器上。我正在使用Apache Tomcat并在webapps文件夹中部署我的war

2) 您的IP必须是公共IP,以便您可以从任何地方访问war,否则请确保您的war和您的手机internet位于同一网络中

3) 对于从MainActivity中的phonegap项目访问war,您可以通过以下方式实现,有许多方法可以访问war,但我更喜欢这样

        @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();
    }
}
通过这种方法,您在项目中使用的所有servlet都将起作用,我认为这将有助于您..

划分et impera

电话端:打电话给一个你确信它正在工作的服务,比如yahoo weather api()

服务器(您的计算机)端:尝试使用浏览器和/或本地运行的相同GWT应用程序调用api url


让我们看看情况如何,然后从那里开始。这个问题有很多可能的问题,我们需要把它缩小一点。

是在开发模式下运行,还是在生产模式下运行?请注意dev模式中的“bindaddress”参数(默认情况下不允许来自本地主机以外的主机的客户端进行连接)。错误消息显示404,而不是连接超时,因此这不太可能是原因,但值得一试。