Hi,

I do not know what the problem is but you should be able to easily
diagnose the problem by enabling logging.

>From the stack trace the error is:

>    [cactus] org.apache.cactus.client.ParsingException: Not a valid
> response [500 Error Interno del Servidor]

The log (server side) will contain more information.

Thanks
-Vincent

> -----Original Message-----
> From: Juan Pedro L�pez S�ez [mailto:[EMAIL PROTECTED]
> Sent: 22 January 2004 11:23
> To: [EMAIL PROTECTED]
> Subject: Strange problem
> 
> Hello everybody.
> 
> I am experiencing a quite strange problem.
> 
> I'm testing a servlet using:
> 
> Cactus-13-1.5
> Tomcat 4.1.27
> J2SE 1.4.2_01
> J2EE 1.3.1
> Ant 1.5.1
> 
> I use the cactus ant tasks and everything seems to be properly
> configured. My Cactus Test class extends the ServletTestCase class.
> 
> If I run my tests in a windows platform, everything is ok.
> If I run my tests in a Linux Debian platform, there are no errors the
> very first time at a day, but next executions show me the same error.
I
> guess it has something to do with the inactivity period at night. The
> first test in my test suite (I just have one) throws the following
> exception:
> 
> [cactus] Testcase:
> testMultdestOk(com.altiria.wasp.push.gateway.TestPushWebappGateway):
> Caused an ERROR
>    [cactus] Failed to get the test results at
> [http://localhost:8081/api/ServletRedirector]
>    [cactus] org.apache.cactus.util.ChainedRuntimeException: Failed to
> get the test results at [http://localhost:8081/api/ServletRedirector]
>    [cactus]     at
>
org.apache.cactus.client.connector.http.DefaultHttpClient.doTest_aroundB
od
> y0(DefaultHttpClient.java:131)
>    [cactus]     at
>
org.apache.cactus.client.connector.http.DefaultHttpClient.doTest_aroundB
od
> y1$advice(DefaultHttpClient.java:222)
>    [cactus]     at
>
org.apache.cactus.client.connector.http.DefaultHttpClient.doTest(Default
Ht
> tpClient.java)
>    [cactus]     at
>
org.apache.cactus.internal.client.WebClientTestCaseDelegate.runWebTest(W
eb
> ClientTestCaseDelegate.java:333)
>    [cactus]     at
>
org.apache.cactus.internal.client.WebClientTestCaseDelegate.runGenericTe
st
> (WebClientTestCaseDelegate.java:281)
>    [cactus]     at
>
org.apache.cactus.internal.client.WebClientTestCaseDelegate.runTest(WebC
li
> entTestCaseDelegate.java:257)
>    [cactus]     at
>
org.apache.cactus.ServletTestCase.runCactusTest(ServletTestCase.java:300
)
>    [cactus]     at
> org.apache.cactus.ServletTestCase.runBare(ServletTestCase.java:263)
>    [cactus] org.apache.cactus.client.ParsingException: Not a valid
> response [500 Error Interno del Servidor]
>    [cactus]     at
>
org.apache.cactus.client.connector.http.DefaultHttpClient.callGetResult(
De
> faultHttpClient.java:249)
>    [cactus]     at
>
org.apache.cactus.client.connector.http.DefaultHttpClient.doTest_aroundB
od
> y0(DefaultHttpClient.java:126)
>    [cactus]     at
>
org.apache.cactus.client.connector.http.DefaultHttpClient.doTest_aroundB
od
> y1$advice(DefaultHttpClient.java:222)
>    [cactus]     at
>
org.apache.cactus.client.connector.http.DefaultHttpClient.doTest(Default
Ht
> tpClient.java)
>    [cactus]     at
>
org.apache.cactus.internal.client.WebClientTestCaseDelegate.runWebTest(W
eb
> ClientTestCaseDelegate.java:333)
>    [cactus]     at
>
org.apache.cactus.internal.client.WebClientTestCaseDelegate.runGenericTe
st
> (WebClientTestCaseDelegate.java:281)
>    [cactus]     at
>
org.apache.cactus.internal.client.WebClientTestCaseDelegate.runTest(WebC
li
> entTestCaseDelegate.java:257)
>    [cactus]     at
>
org.apache.cactus.ServletTestCase.runCactusTest(ServletTestCase.java:300
)
>    [cactus]     at
> org.apache.cactus.ServletTestCase.runBare(ServletTestCase.java:263)
> 
> 
> No matters what the first test is. It is the same situation if I
change
> the test execution order in the test suite.
> 
> The rest of the test suite is correcly executed.
> 
> Every test has the same structure:
> 
>   public void beginMyTest(WebRequest theRequest)
>     {
> 
> log.debug("Enter beginMyTest");
> 
>         theRequest.addHeader("Content-type",
> "application/x-www-form-urlencoded; charset=UTF-8");
>         theRequest.addParameter("cmd",
> "sendsms",WebRequest.POST_METHOD);
> 
>     }
> 
>    public void testMyTest() throws Exception{
> log.debug("Enter testMyTest");
> 
> try{
> MyServletToTest servlet = new MyServletToTest();
> servlet.init(config);
> 
> // Call method to test
> servlet.doPost(request,response);
> }catch(Exception e){
> log.fatal("Exception in test",e);
> }
> }
> 
> 
>     public void endMyTest(WebResponse theResponse)
>         throws Exception
>     {
> log.debug("Enter endMyTest");
> 
>         String expected = "expected response";
> 
>         String result = theResponse.getText();
> 
> database = System.getProperty("myDatabasePath");
> log.info("database to test results: "+database);
> 
>         assertEquals(expected, result);
>         // Fetch database data after executing your code
>         IDataSet databaseDataSet = getConnection().createDataSet();
>         ITable actualTable =
databaseDataSet.getTable("TABLE_TO_TEST");
> 
>         // Load expected data from an XML dataset
>         IDataSet expectedDataSet = new FlatXmlDataSet(new
>
InputStreamReader(getClass().getResourceAsStream("/expectedTablesxml")))
;
> 
>         ITable expectedTable =
> expectedDataSet.getTable("TABLE_TO_TEST");
> 
> 
>         // Assert actual database table match expected table
> 
>         Assertion.assertEquals(expectedTable,new
> CompositeTable(expectedTable.getTableMetaData(), actualTable));
> 
>     }
> 
> The init method of my servlet just gets a reference to a DataSource
> pointing to my database:
> 
> public void init(ServletConfig config) throws ServletException {
>         super.init(config);
>        try {
> //Context ctx = new InitialContext();
> //dataSource = (DataSource)ctx.lookup("java:comp/env/jdbc/MktsmsDb");
> 
>     Context init = new InitialContext();
>     Context ctx = (Context) init.lookup("java:comp/env");
>       dataSource = (DataSource) ctx.lookup("jdbc/myDb");
> 
>     if(dataSource == null ) {
> log.fatal("Init: dataSource ERROR");
>     }
>     else {
> log.info("Init: dataSource OK");
>     }
> 
> }
> catch (NamingException ex) {
>     throw new ServletException("Cannot retrieve
> java:/jdbc/MktsmsDb",ex);
> }
> 
>     }
> 
> Sometimes, there are also some random FAILURES in some tests, but of
> course those tests shouldn't fail because they have been previously
> checked in the windows platform.
> 
> Does anybody know what can be happening?
> 
> Thank you,
> 
> Juan Pedro L�pez.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to