2

我有一个简单的 Web 应用程序托管在带有单个 servlet 的 tomcat-7 上。servlet 的目的是创建 google 频道,然后在为用户打开的频道上请求令牌。我有以下配置...

WEB-INF
  -- lib
    -- appengine-api-1.0-sdk-1.4.3.jar
  -- classes
    -- Gc.class

Gc.java的来源是...

import com.google.appengine.api.channel.*;
public class Gc extends HttpServlet {
  protected void doGetPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.getWriter().write("Creating channel...<br>");
    ChannelService channelService = ChannelServiceFactory.getChannelService();
    response.getWriter().write("Channel created!<br>");
    response.getWriter().write("Getting token for user 'user1'...<br>");
    String token = channelService.createChannel("user1");
    response.getWriter().write("toekn => "+token);
  }
}

但它给了我一个以下错误......

type Exception report

*message* **The API package 'channel' or call 'CreateChannel()' was not found.**

*description* **The server encountered an internal error (The API package 'channel' or call 'CreateChannel()' was not found.) that prevented it from fulfilling this request.**

exception

com.google.apphosting.api.ApiProxy$CallNotFoundException: The API package 'channel' or call 'CreateChannel()' was not found.
    com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:98)
    com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:50)
    com.google.appengine.api.channel.ChannelServiceImpl.createChannel(ChannelServiceImpl.java:40)
    webRtc.Gc.doGetOrPost(Gc.java:46)
    webRtc.Gc.doGet(Gc.java:31)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

** 我错过了一些图书馆吗?如果是,那么我可以在哪里找到这些。** 非常感谢任何帮助。

4

1 回答 1

1

我知道了!!!我的应用程序的目标是创建谷歌频道并在这些频道上发送消息。

我的印象是,google channel API 是一个独立的库,并试图将相关的 .jar 放在我的 tomcat 应用程序的 lib 中。

但是我错了。Google 频道 API 库仅适用于 Google AppEngine 服务器。因此,任何需要利用这些 Google API 的应用程序都必须托管在 Google AppEngine 服务器上。

如果我错了,我愿意听取专家的意见。

于 2012-12-20T08:43:41.713 回答