Google app engine 现场砖和通道存在服务(GAE);正常servlet也有问题
在我的Java Google App Engine服务器应用程序中,我想启用Channel Presence servlet,以便使用Channel API跟踪与我的频道之间的连接/断开连接(如上所述。我已经编辑了我的Google app engine 现场砖和通道存在服务(GAE);正常servlet也有问题,google-app-engine,servlets,channel-api,sitebricks,Google App Engine,Servlets,Channel Api,Sitebricks,在我的Java Google App Engine服务器应用程序中,我想启用Channel Presence servlet,以便使用Channel API跟踪与我的频道之间的连接/断开连接(如上所述。我已经编辑了我的WEB-INF/appengine WEB.xml文件,如前所述 我的应用程序中的大多数servlet使用Sitebricks,而不是扩展HttpServlet的类,为我在应用程序中创建REST端点提供了一种简单的方法。但是,在我的类中使用Sitebricks似乎不起作用,因为当U
WEB-INF/appengine WEB.xml
文件,如前所述
我的应用程序中的大多数servlet使用Sitebricks,而不是扩展HttpServlet的类,为我在应用程序中创建REST端点提供了一种简单的方法。但是,在我的类中使用Sitebricks似乎不起作用,因为当URL被点击时,我得到了警告:找不到:/\u ah/channel/connected/
的文件:
@At("/_ah/channel")
@Service
public class MyChannelPresenceServlet {
...
@Post("/connected")
public void connectedMethod() {
...
}
@Post("/disconnected")
public void disconnectedMethod() {
...
}
...
}
我是否有任何方法可以使用Sitebricks为频道状态、为/-ah/Channel/connected/
和/\u ah/Channel/disconnected/
提供REST URL端点
奖金问题
假设Sitebricks不是解决方案,相反,我需要坚持使用普通的servlet类,扩展HttpServlet
,并通过WEB-INF/WEB.xml
进行配置。另一种解决方案对我仍然不起作用。假设我要将其放入我的WEB.xml文件中:
<servlet>
<servlet-name>channel_connect</servlet-name>
<servlet-class>com.example.PresenceServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>channel_connect</servlet-name>
<url-pattern>/_ah/channel/connected/</url-pattern>
</servlet-mapping>
非常感谢所有的帮助,尤其是来自谷歌员工的帮助
(注:我正在使用GAE SDK 1.7.2。我急切地等待1.7.3的发布)
更新 我还尝试了一个实验。在我的servlet类的web.xml的
标记中,我添加了这个标记,以便在服务器启动时强制加载我的servlet(顺便说一下,在我的示例中,这是使用mvn gae:run
完成的)。现在我得到了这个输出
WARNING: /_ah/channel/connected/: javax.servlet.UnavailableException: java.lang.InstantiationException: com.ea.pogosocial.rest.ChannelServiceServlet
如果还有人在乎
问题是,我既不能使用Sitebricks也不能使用Guice Injection来处理对通道状态服务URI的POST请求的Servlet。一旦我将两者都删除,该Servlet就会像一个符咒一样工作。如果还有人关心
问题是,我既不能使用Sitebricks也不能使用Guice Injection来处理对通道状态服务URI的POST请求。一旦我删除了这两个,该Servlet就像一个符咒一样工作。Hmm这太糟糕了。GAE似乎在反思Servlet链,试图发现一个注册的ha用于/_ah/通道的ndler/* 免责声明:我是Sitebricks和Guice Servlet的创建者,因此我觉得这相当令人沮丧。有一次我在GAE中实现了通道设置,我成功地直接使用通道API:
嗯,这太糟糕了。GAE似乎在反思servlet链,试图为/\u ah/通道发现一个已注册的处理程序/* 免责声明:我是Sitebricks和Guice Servlet的创建者,因此我觉得这相当令人沮丧。有一次我在GAE中实现了通道设置,我成功地直接使用通道API:
很高兴看到主角自己回复!我希望谷歌能更频繁地回复!很高兴看到主角自己回复!我希望谷歌能更频繁地回复!
WARNING: /_ah/channel/connected/: javax.servlet.UnavailableException: java.lang.InstantiationException: com.ea.pogosocial.rest.ChannelServiceServlet