2009-11-16 2 views
2

부두가있는 단위 테스트이고 테스트중인 서블릿뿐만 아니라 정적 페이지도 제공하고 싶습니다. 내 응용 프로그램에서 정적 페이지가 필요합니다. 내가 지금 필요한 것은이임베디드 부두 서블릿 테스터 단일 정적 파일 제공

tester = new ServletTester(); 
tester.setContextPath("/context"); 
tester.addServlet(MyServlet.class, "/servlet/*"); 
tester.start(); 

같은 부두를 초기화하고있어,

tester.addStaticPage("local/path/in/my/workspace", "/as/remote/file"); 

같은 것이 부두와이 가능하다?

답변

3

나는 이것을 ServletTester로 할 수 있다고 생각하지 않는다. ServletTester는 서블릿에 대한 단일 Context를 만듭니다. 최소한 두 개의 컨텍스트, 즉 서블릿 용과 정적 컨텐츠 용으로 임베디드 jetty를 설정해야합니다.

전체 WebAppContext가있는 경우 설정되지만 설정되지는 않습니다.

ServletTester의 사본을 만들고 머리카락을 추가하거나 API에서 읽고 필요한 컨텍스트를 구성 할 수 있습니다. 여기에 기본적인 아이디어를 보여주는 코드 조각이 있습니다. 은 그대로 컴파일 할 수 없습니다. 정적 컨텐트에 적합한 컨텍스트를 만들어야합니다.

+0

답장을 보내 주셔서 감사합니다. 나는 ServletTester가 나에게 많은 선택권을주지 않을 것이라고 생각했다. 유닛 테스트를 위해 부두 서버를 설치하고 싶은지 잘 모르겠습니다 만, 한번 살펴 보겠습니다. – cringe

0

정적 컨텐츠가 들어있는 디렉토리에 자원 기본을 설정하고 해당 컨텐츠를 제공하기 위해 부두 "기본 서블릿"을 추가하십시오. 아래 예제에 적절한 코드를 추가했습니다.

tester = new ServletTester(); 
tester.setContextPath("/context"); 
tester.setResourceBase("/path/to/your/content"); 
tester.addServlet(MyServlet.class, "/servlet/*"); 
tester.addServlet(org.eclipse.jetty.servlet.DefaultServlet.class, "/*"); 
tester.start(); 
관련 문제