2013-03-15 2 views
0

Mac에서 로컬로 실행되는 SDK에서 이와 같은 현상이 발생합니다. 현재 상태 처리를 설정하려고합니다. 로깅 만하는 간단한 서블릿을 만들었습니다. (채널 그렇지 않으면 작업을 한 것으로 나타났습니다하지만) 그러나, 나는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()); 
    } 
} 

어떤 도움

을 감상 할 수있다.

답변

1

얼마나 당혹 스럽습니까? 잘라 내기 및 붙여 넣기 오류. 내 서블릿 클래스가 잘못 추상화되었습니다. 한숨. 결정된.

여러 다른 사람들이 서로 다른 상황에서 같은 예외에 대해 불평하고 최소한 하나는 채널 존재와 관련하여 불평하는 것을 보았습니다. 한 사람이 실수로 서블릿 클래스를 추상으로 남겼다는 것을 깨닫는다면 이것이 도움이되었을 것입니다.

나를 따라 가려고하는 사람 덕분에 쥐구멍.

+0

전체 게시물을 삭제해야하는 경우 알려 주시기 바랍니다. – Chuck

관련 문제