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
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.