passing servletRunner web.xml as stream
Adam Hardy <[email protected]>
| Newsgroups | gmane.comp.web.httpunit.devel |
|---|---|
| Message-ID | <[email protected]> |
I am trying to figure out the exception from the following code (see below for
stacktrace).
What more do I need to do? I have done this:
- instantiated servletRunner with XML stream for deployment descriptor
- created a WebRequest object
- passed in the request to the getResponse() call
Yet ServletRunner is looking for the deployment descriptor again, which it
should already have.
StringBuilder xml = new StringBuilder();
xml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
xml.append("<web-app version=\"2.4\"");
xml.append(" xmlns=\"http://java.sun.com/xml/ns/j2ee\"");
xml.append(" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"");
xml.append(" xsi:schemaLocation=\"http://java.sun.com/xml/ns/j2ee");
xml.append(" http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd\">");
xml.append("<filter><filter-name>Struts</filter-name>");
xml.append("<filter-class>");
xml.append("org.apache.struts2.dispatcher.FilterDispatcher");
xml.append("</filter-class></filter>");
xml.append("<filter-mapping><filter-name>Struts</filter-name>");
xml.append("<url-pattern>*.html</url-pattern></filter-mapping>");
xml.append("<servlet><servlet-name>bla</servlet-name><servlet-class>");
xml.append("bug.EmptyServlet");
xml.append("</servlet-class></servlet>");
xml.append("<servlet-mapping><servlet-name>bla</servlet-name>");
xml.append("<url-pattern>*.html</url-pattern></servlet-mapping>");
xml.append("</web-app>");
ServletRunner servletRunner =
new ServletRunner(new ByteArrayInputStream(xml.toString()
.getBytes()), "/test");
servletRunner.registerServlet("bla", EmptyServlet.class.getName());
ServletUnitClient client = servletRunner.newClient();
File file = new File("src/test/resources/results.csv");
WebRequest getRequest =
new GetMethodWebRequest(
"http://localhost/test/test-result/edit.html");
WebResponse response = servletRunner.getResponse(getRequest);
com.meterware.httpunit.HttpInternalErrorException: Error on HTTP request: 500
javax.servlet.ServletException:
/home/adam/projects/bug-httpunit-struts/WEB-INF/web.xml (No such file or
directory) [http://localhost/test/test-result/edit.html]
at
com.meterware.servletunit.ServletUnitClient.newResponse(ServletUnitClient.java:121)
at com.meterware.httpunit.WebWindow.getResource(WebWindow.java:164)
at com.meterware.httpunit.WebWindow.getSubframeResponse(WebWindow.java:128)
at com.meterware.httpunit.WebWindow.getResponse(WebWindow.java:121)
at com.meterware.httpunit.WebClient.getResponse(WebClient.java:113)
at com.meterware.servletunit.ServletRunner.getResponse(ServletRunner.java:151)
at bug.TestResultActionTest.test(TestResultActionTest.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
at
org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
at
org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
at
org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:71)
at
org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
at
org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
at
org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
thanks
Adam
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Register now and save $200. Hurry, offer ends at 11:59 p.m.,
Monday, April 7! Use priority code J8TLD2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone