Издеваться над сервером разработки GAE? - PullRequest
2 голосов
/ 20 сентября 2010

Я пытаюсь смоделировать данные 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 Ответ

0 голосов
/ 04 марта 2011

Я сомневаюсь, что вы сможете обойти это на GAE.

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

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

...