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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.