使用app引擎的GCM服务器,用于java无法正常工作

时间:2012-08-21 13:31:07

标签: android google-app-engine google-cloud-messaging

所以我已经关注了GCM演示应用教程。 http://developer.android.com/guide/google/gcm/demo.html

我使用了jetty服务器。 但现在我想为java服务器做app引擎,它不能正常工作。 我确信我的客户端配置为oke,因为它适用于jetty服务器。

在ApiKeyInitializer.java中,我用我的访问密钥替换了“replace_this_text_by_your_Simple_API_Access_key”。

我将appengine sdk复制到一个简单的位置D:\ appenginesdk 比我在cmd中运行:

ant -Dsdk.dir=D:\appenginesdk runserver -Dserver.host=192.168.0.101

其中192.168.0.101是我的本地IP。

D:\gmcserverapp>ant -Dsdk.dir=D:\appenginesdk runserver -Dserver.host=192.168.0.101
Buildfile: D:\gmcserverapp\build.xml

init:

copyjars:

compile:
[javac] Compiling 1 source file to D:\gmcserverapp\WebContent\WEB-INF\classes
[javac]
[javac]           WARNING
[javac]
[javac] The -source switch defaults to 1.7 in JDK 1.7.
[javac] If you specify -target 1.5 you now must also specify -source 1.5.
[javac] Ant will implicitly add -source 1.5 for you.  Please change your build file.
[javac] warning: [options] bootstrap class path not set in conjunction with-source 1.5
[javac] 1 warning
datanucleusenhance:
[enhance] DataNucleus Enhancer (version 1.1.4) : Enhancement of classes
[enhance] DataNucleus Enhancer completed with success for 0 classes. Timings :input=156 ms, enhance=0 ms, total=156 ms. Consult the log for full details
[enhance] DataNucleus Enhancer completed and no classes were enhanced. Consult the log for full details

runserver:
 [java] aug 21, 2012 1:17:55 PM com.google.apphosting.utils.jetty.JettyLogger info
 [java] INFO: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger
 [java] aug 21, 2012 1:17:55 PM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml
 [java] INFO: Successfully processed D:\gmcserverapp\WebContent\WEB-INF/appengine-web.xml
 [java] aug 21, 2012 1:17:55 PM com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml
 [java] INFO: Successfully processed D:\gmcserverapp\WebContent\WEB-INF/web.xml
 [java] aug 21, 2012 3:17:57 PM com.google.appengine.tools.development.DevAppServerImpl start
 [java] INFO: The server is running at http://192.168.0.101:8080/
 [java] aug 21, 2012 3:17:57 PM com.google.appengine.tools.development.DevAppServerImpl start
 [java] INFO: The admin console is running at http://192.168.0.101:8080/_ah/admin

这是我在模拟器中得到的

emulator android 4.1 with google api

在浏览器中我没有注册任何设备。

我该怎么办?

我做错了什么?

我做了很多教程,没有任何工作,我变得绝望。

编辑2012-08-21 15:57:

感谢Yahor10,解决了一些错误。 我现在得到这个错误:

 [java] aug 21, 2012 1:52:40 PM com.google.appengine.tools.development.LocalResourceFileServlet doGet
 [java] WARNING: No file found for: //register

编辑2012-08-21 16:18:

 //   String serverUrl = SERVER_URL + "/register";
 String serverUrl = SERVER_URL;

我更改了android应用程序的serverUtilities.java中的server_url。这使模拟器说它已连接。但是当我刷新192.168.0.101:8080它仍然没有设备.....

2 个答案:

答案 0 :(得分:1)

我在使用GCM演示时遇到了类似的困难,直到我发现我的server_url不正确。我把它设置为'http://< my_ip_address>:8080 / gcm-demo'作为示例和教程提示。最重要的是,每次应用程序试图联系服务器时,ant都会给我一个日志,所以我认为这个网址不正确。

但是我刚从网址的末尾取出了'/ gcm-demo',它就像一个魅力。

希望这是让你头痛的原因。

-Mrdresden

答案 1 :(得分:0)

在服务器build.xml中设置1.7 java代码

<target name="compile" depends="init" description="Compile the Java classes.">
    <javac destdir="${classes}" debug="true" srcdir="${src}" target="1.7"
      includeantruntime="false">
      <classpath refid="compile.classpath"/>
    </javac>
  </target>

设置App引擎sdk和的正确目录位置 在客户端编写正确的计算机IP地址