Издеваться над сервером разработки GAE?

Я пытаюсь смоделировать данные HTTPServletRequest на моем сервере разработки GAE. Я использую Eclipse Plugin 1.3.7

Я пытался сделать это:

package com.FOO.madservice.servlet.mock;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import static org.mockito.Mockito.*;

@SuppressWarnings("serial")
public class BAR2ServletMock extends HttpServlet {
    ...
    protected HttpServletRequest requestFilter(HttpServletRequest req) {
        HttpServletRequest servletRequest = spy(req);

        doReturn("gzip, deflate").when(servletRequest).getHeader("header-name-goes-here");
        doReturn("174.30.216.4").when(servletRequest).getRemoteAddr();

        return servletRequest;
    }
    ...
}

Запуск следующего дает исключение:

java.lang.NoClassDefFoundError: sun.reflect.ReflectionFactory является ограниченным классом. Подробнее см. В руководстве разработчика Google App Engine.

Любые идеи о том, как отключить класс при проверке списка на сервере разработки GAE или, возможно, с использованием другой библиотеки макетов, которая работает с GAE?

Спасибо, Максим.

Ответы на вопрос(1)

Решение Вопроса

GAE совместим со стандартом Java Servlet, так что вы можете протестировать свою программу, установив стандартный контейнер Java Servlet, такой как Tomcat.

Кроме того, разве объектное издевательство не требует отражения по определению «насмешливый»? Белый список GAE абсолютно обязателен, и вы не сможете его обойти. Для развертывания в ядре приложения невозможно использовать API полного отражения (однако поддерживаются некоторые классы).

 Maxim Veksler05 мар. 2011 г., 14:52
Я закончил тем, что расширил HttpServletRequest и переопределил методы, которые хотел издеваться. Работает как на разработку, так и на GAE.

Ваш ответ на вопрос