Я разрабатываю сервер REST под NetBeans 7.4 в Windows (с Java SE Runtime 1.7.0_21-b11) Затем .war развернут на Linux-машине под управлением Tomcat (Java 1.7.0_45-b18) с автоматизированным TeamCity построить с помощью ant для сборки .warКак обрабатывать 2 разных версии HttpServletRequest в Java7?
Я пытаюсь провести тестирование методов REST с помощью специального встроенного класса, реализующего HttpServletRequest, который реализует только несколько методов.
public class HttpMockReq implements HttpServletRequest { @Override ... }
Моя проблема заключается в том, что определение этого интерфейса отличается в моем Dev среде в Windows, и когда я скомпилировать его с муравья на Linux. В частности, 3 методы определены в HttpServletRequest на Windows, которые не существуют в версии Linux:
changeSessionId,
upgrade
и
setContentLength
и сборки Linux жалуется, что я ничего с этим (подделка не отменяет).
я на самом деле имеют один и тот же вопрос с HttpServletResponse с
setContentLengthLong
Я немного потерял с различными библиотеками, инструменты и установки Java. Я не могу понять, как/почему сторона Windows (которая имеет более старую версию Java 7) имеет более широкое определение этих интерфейсов.
Боковой вопрос: есть ли способ сделать одну из этих окружений более богатой или более бедной реализацией с помощью @Ignore или что-то в этом роде?
Это действительно так. Есть ли способ попросить Netbeans на стороне Windows использовать более старую спецификацию сервлета? –
Чтобы решить проблему, указанную в моем контексте, исправление заключалось в том, чтобы явно добавить servlet-api.jar из Tomcat7 в список баннеров проекта NetBeans. Это имеет приоритет над j2ee-platform-classpath, и мой макет был очень доволен. –