문제

Ok 이것은 다음과 관련이 있습니다. Jetty를 사용하여 서블릿 테스트를 프로그래밍 방식으로 설치 및 실행합니다

그곳에서 훌륭한 답변을 얻었고, 프로그래밍 방식으로 서블릿을로드 할 수 있었고 모든 것이 굉장하게 만들어졌습니다.

그러나 내가하고 싶은 것은 테스트에 web.xml을로드하고 (ClassPath에서 모두) 서버를 실행하도록하는 것입니다 (현재 클래스 경로 사용) - 문서에서 디렉토리를 가리키는 방법을 보았습니다. 그렇게하지만, 나는 클래스 경로에서 일하고 싶습니다 (제자리 테스트를 위해 더 좋습니다). 본질적으로 내 web.xml을 확인합니다.

(관련성이 없지만이 앱은 Scala에 있지만 문제가 없었습니다. 모든 것이 광고 된대로 작동합니다).

도움이 되었습니까?

해결책

개별 서블릿을로드하는 것과는 달리 프로그램적으로 적절한 웹 응용 프로그램을로드하는 것 같습니다 (그리고 전체 전쟁 파일이 작동하지 않고 작업하고 싶다고 생각합니다).

Server server = new Server( port );
WebAppContext root = new WebAppContext();

root.setWar("/path/to/somewhere");
root.setContextPath("/");

server.addHandler( root );
server.start();

트릭은 그게 /path/to/somewhere a WEB-INF 디렉토리와 귀하의 web.xml 파일은 거기에 살아야합니다. 클래스 경로에서 다른 모든 것을 자동으로로드 할 수 있으므로 해당 디렉토리 구조 내에 살아야 할 필요는 없습니다 (원한다면 실제 전쟁 파일 또는 완전한 폭발 전쟁 트리로가는 길을 만들 수 있습니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top