1
我有一個嵌入式的servlet,我在單元測試中使用,看起來是這樣的:遷移嵌入式Jetty服務器從6到版本7
這是利用碼頭的6.1.24版本編寫public class UnitTestWebservices extends AbstractHandler {
private Server server;
private Map<Route,String> data = new HashMap<Route,String>();
public UnitTestWebservices(int port) throws Exception {
server = new Server(port);
server.setHandler(this);
server.start();
}
public void handle(String url, HttpServletRequest request, HttpServletResponse response, int arg3) throws IOException, ServletException {
final Route route = Route.valueOf(request.getMethod(), url);
final String content = data.get(route);
if(content != null) {
final ServletOutputStream stream = response.getOutputStream();
stream.print(content);
stream.flush();
stream.close();
}
else {
response.sendError(HttpServletResponse.SC_NOT_FOUND);
}
}
....
}
。我試圖切換到使用碼頭7.1.1.v20100517,以及更新的代碼如下:
public class UnitTestWebservices extends AbstractHandler {
private Server server;
private Map<Route,String> data = new HashMap<Route,String>();
public UnitTestWebservices(int port) throws Exception {
server = new Server(port);
server.setHandler(this);
server.start();
}
public void handle(String url, Request request, HttpServletRequest servletRequest, HttpServletResponse response) throws IOException, ServletException {
final Route route = Route.valueOf(request.getMethod(), url);
final String content = data.get(route);
request.setHandled(true);
response.setContentType("application/json");
if(content != null) {
response.setStatus(HttpServletResponse.SC_OK);
final Writer stream = response.getWriter();
stream.append(content);
}
else {
response.sendError(HttpServletResponse.SC_NOT_FOUND);
}
}
}
但每當我試圖向服務器請求它無限期地掛起。有沒有人經歷過類似的事情?它還將此打印到日誌中:
log4j:WARN No appenders could be found for logger (org.eclipse.jetty.util.log).
log4j:WARN Please initialize the log4j system properly.
[email protected] STOPPED
[email protected] started
log4j警告是類路徑中沒有log4j.properties文件。嘗試解決這個問題,看看這是否記錄了真正的錯誤。 – 2010-05-26 11:57:44