2010-09-20 2 views
2

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

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

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 is a restricted class. Please see the Google App Engine developer's guide for more details.

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

Thanks, Maxim.

ответ

0

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

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

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

+0

Я закончил тем, что расширил HttpServletRequest и переопределив методы, которые я хотел высмеять. Работает как по разработке, так и по GAE. –

Смежные вопросы