Re: passing servletRunner web.xml as stream
Adam Hardy <[email protected]>
| Newsgroups | gmane.comp.web.httpunit.devel |
|---|---|
| Message-ID | <[email protected]> |
Do you mean that httpunit is substituting the actual exception for the one below?
In other words, ServletUnitClient.java line 121 is a catch block?
Is there any logging I can turn on to see more of the original exception?
(Ideally, a stacktrace could be printed at that point, or exception chaining).
Russell Gold on 09/04/08 01:13, wrote:
> 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)
-------------------------------------------------------------------------
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