我正打算通过单元测试ServletUnit我的Servlet和遇到一些问题跑了:
- 作为一个起点,我们应该创建一个ServletRunner的对象。 其中一个构造函数的期待与web.xml文件File对象。 我提供我的web.xml文件的完整路径,但不知何故,它忽略了路径在顶层文件夹中提供和搜索。 在代码段和错误消息是如下:
代码段
ServletRunner sr = new ServletRunner(new File("* C:/eclipse-workspaces/pocs/lms-csd/src/main/webapp/WEB-INF/web.xml*"));
ServletUnitClient sc = sr.newClient();
WebRequest request = new PostMethodWebRequest("path to be specified" ); request.setParameter( "userId", "test" );
request.setParameter( "password", "csd" );
WebResponse response = sc.getResponse(request);
String text = response.getText();
Assert.assertTrue(text.contains( “欢迎来到休假管理系统”));
堆栈跟踪
com.meterware.httpunit.HttpInternalErrorException:
Error on HTTP request: 500 org.apache.jasper.JasperException: java.io.FileNotFoundException: * C:\eclipse-workspaces\pocs\lms-csd\WEB-INF\web.xml*
(The system cannot find the path specified)
[HTTP://本地主机/登录] - 为什么系统继续看着文件夹结构是... / WEB-INF / web.xml文件。 煤矿是一个maven项目,我不希望改变项目的结构,以这种方式适应。 我怎样才能让ServletRunner的类从一个指定的文件夹阅读? - 在Servlet代码中,我使用下面的代码:
String result = null if (someCondition) result = "/welcome.jsp"; } else { logger.warn("Password Validation failed"); request.setAttribute("failedlogin", new Boolean(true)); result = "/index.jsp"; } } RequestDispatcher requestDispatcher = getServletContext().getRequestDispatcher(result); requestDispatcher.forward(request, response);
再次ServletUnit预计的welcome.jsp是在根foler,但JSP文件出现在... / src目录/主/ web应用程序/文件夹。 再怎么可以ServletUnit被告知目标文件夹位置?
提前谢谢了。
顺祝商祺M.SuriNaidu