Я испытываю это с SDK, работающим локально на моем Mac. Я пытаюсь установить обработку присутствия. Я создал простой сервлет, который ничего не делает, кроме журнала. Тем не менее, я получаю следующее исключение любого соединения и разъединения события (хотя каналы по всей видимости, будут работать иначе) ...Ошибки исключения обработчика канала Google App Engine
Mar 14, 2013 8:04:25 PM com.google.apphosting.utils.jetty.JettyLogger warn
WARNING: /_ah/channel/disconnected/: javax.servlet.UnavailableException: java.lang.InstantiationException
Mar 14, 2013 8:04:38 PM com.google.apphosting.utils.jetty.JettyLogger warn
WARNING: /_ah/channel/connected/: javax.servlet.UnavailableException: java.lang.InstantiationException
Я зарегистрировал этот сервлет как для подключения и отключения каналов в моей сети .xml ...
<servlet>
<servlet-name>ChannelPresence</servlet-name>
<servlet-class>com.readyposition.gaetestbed.ChannelPresenceServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ChannelPresence</servlet-name>
<url-pattern>/_ah/channel/connected/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ChannelPresence</servlet-name>
<url-pattern>/_ah/channel/disconnected/</url-pattern>
</servlet-mapping>
обработчик (сервлет) сам по себе является довольно основной ...
package com.readyposition.gaetestbed;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.appengine.api.channel.ChannelPresence;
import com.google.appengine.api.channel.ChannelService;
import com.google.appengine.api.channel.ChannelServiceFactory;
@SuppressWarnings("serial")
public abstract class ChannelPresenceServlet extends HttpServlet {
final static Logger logger =
LoggerFactory.getLogger(ChannelPresenceServlet.class);
@Override
public void doGet(final HttpServletRequest req,
final HttpServletResponse resp)
throws IOException, ServletException
{
processCommand(req, resp);
}
@Override
public void doPost(final HttpServletRequest req,
final HttpServletResponse resp)
throws IOException, ServletException
{
processCommand(req, resp);
}
public void processCommand(final HttpServletRequest req,
final HttpServletResponse resp)
throws IOException, ServletException
{
final ChannelService channelService =
ChannelServiceFactory.getChannelService();
final ChannelPresence presence = channelService.parsePresence(req);
logger.info("Channel Presence - clientId={}, isConnected={}",
presence.clientId(), presence.isConnected());
}
}
Любая помощь будет оценена.
Если я должен удалить весь этот пост, дайте мне знать. – Chuck