错误POLICY_NAME_POPULATION

时间:2015-09-03 10:21:04

标签: java android gwt rpc gwt-syncproxy

我们有一个gwt Web应用程序,现在我们正在为同一个Web应用程序开发android应用程序。在这里我们尝试使用Web应用程序的服务器端代码,为此我们使用 SyncProxy (将android应用程序与RPC连接)。

我的代码是:

SyncProxy.setBaseURL("http://192.168.1.87/gwtandroidproject/");
        GreetingServiceAsync greetService = SyncProxy.create(GreetingService.class);
        CookieManager cm = ((HasProxySettings) greetService).getCookieManager();


        greetService.greetServer("123", new AsyncCallback<String>() {

            @Override
            public void onFailure(Throwable arg0) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onSuccess(String arg0) {
                // TODO Auto-generated method stub
                Toast.makeText(mainActivity, arg0, 3000);
            }
        });

但例外是

09-03 15:45:52.628: E/AndroidRuntime(21080):
Caused by: com.gdevelop.gwt.syncrpc.exception.SyncProxyException: 
Error POLICY_NAME_POPULATION. Unable to populate policy names

注意:在申请中不使用GAE

1 个答案:

答案 0 :(得分:1)

要检查的事项(因为您不使用App Engine,您可能需要在本地服务器上提供一些详细信息)。从本质上讲,此错误建议您无法访问策略文件。

  1. 通常会抛出此异常并带有辅助异常。再看一下堆栈跟踪,看看是否存在引发SyncProxyException的二次异常。如果您在获取跟踪时遇到问题,请捕获此异常并将其包装在新抛出的RuntimeException中以获取完整跟踪。
  2. 确保您的服务器是GWT编译的。验证GWT本地接口是否正常工作是不够的,必须在本地服务器路径上提供完整的GWT-Compile。
  3. 确保可以从Android设备的浏览器访问该路径(&#34; http://192.168.1.87/gwtandroidproject/&#34;)。如果没有,请确保相同的网络,相同的wifi等
  4. 要获得更多详细信息,请激活GSP-Android的日志记录功能。如果您是0.5,那么有些细节尚未正确记录(即将发布的0.6版本将提供更好的日志记录)。为此,请执行以下操作:SyncProxy.setLoggingLevel(Level.FINER);。 0.5版本在0.6中已经解决了正确日志记录的一些问题,但是这仍然会给你一些信息,特别是你想获得&#34;访问置换文件:&#34;日志条目,它将告诉您正在访问哪个文件。与上一步一样,尝试直接通过浏览器访问此文件:http://192.168.1.87/gwtandroidproject/PERM_FILE
  5. 除了这些选项之外,请在您使用的本地服务器上提供一些其他详细信息。我只使用GAE本地开发服务器测试过,但原则应该全面适用......