Re: passing servletRunner web.xml as stream
Russell Gold <[email protected]>
| Newsgroups | gmane.comp.web.httpunit.devel |
|---|---|
| Message-ID | <[email protected]> |
On Apr 9, 2008, at 5:01 AM, Adam Hardy wrote:
> 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?
Yes.
>
>
> 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).
Not built-in, although that would be sensible to add. For now, the
simplest thing to do would be to edit the source code to print out the
stack trace.
>
>
>
> 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
> _______________________________________________
> 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