Re: passing servletRunner web.xml as stream

Russell Gold <[email protected]>
Newsgroups gmane.comp.web.httpunit.devel
Message-ID <[email protected]>
Based on the stack trace, it appears that your servlet is doing a  
request for the web.xml on its own. The input stream allows you to  
specify the web.xml for ServletUnit to use to interpret requests;  
however, if one of your servlets looks for that file, it will be  
treated as any other web request.


On Apr 8, 2008, at 10:09 AM, Adam Hardy wrote:

> 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
> _______________________________________________
> Httpunit-develop mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/httpunit-develop


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
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.