Cactus

5 respostas
P

Senhores…

Estou tendo um problemão na utilização do Cactus. Eu consegui rodar o exemplo dentro meu Tomcat belezinha, porém não estou conseguindo testar meu sistema.

Criei um projeto separado para testes, onde adicionei os jars do Cactus no classpath, também adicionei o meu projeto do meu sistema ao projeto de testes…o meu ServletTestCase não tem problema nenhum de compilação, consigo acessar as classes do meu sistema sem problema…porém, quando tento efetuar o teste através da url http://localhost:8180/etktTest/ServletRedirector?suite=javali.etkt.servlet.test.TestSampleServlet&xsl=cactus-report.xsl

tenho o seguinte erro:

<blockquote>javax.servlet.ServletException: Wrapper cannot find servlet class org.apache.cactus.server.ServletTestRedirector or a class it depends on

org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)

org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)

org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)

org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)

org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)

org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)

java.lang.Thread.run(Thread.java:534)</blockquote>

e isso derruba a minha aplicação etktTest…configurei o web.xml assim como manda no site do Cactus…se alguem achar necessario eu posto aqui…

se alguem puder me ajudar ficarei extremamente grato…

Valeu!

5 Respostas

I

Tu adicionou os Servlets de redirecionamento do cactus no teu web.xml?

&lt;servlet&gt;
        &lt;servlet-name&gt;ServletRedirector&lt;/servlet-name&gt;        &lt;servlet-class&gt;org.apache.cactus.server.ServletTestRedirector&lt;/servlet-class&gt;
    &lt;/servlet&gt;
    &lt;servlet&gt;
        &lt;servlet-name&gt;JspRedirector&lt;/servlet-name&gt;
        &lt;jsp-file&gt;/jspRedirector.jsp&lt;/jsp-file&gt;
    &lt;/servlet&gt;
	
    &lt;servlet-mapping&gt;
        &lt;servlet-name&gt;ServletRedirector&lt;/servlet-name&gt;
        &lt;url-pattern&gt;/ServletRedirector&lt;/url-pattern&gt;
    &lt;/servlet-mapping&gt;    
    &lt;servlet-mapping&gt;
        &lt;servlet-name&gt;JspRedirector&lt;/servlet-name&gt;
        &lt;url-pattern&gt;/JspRedirector&lt;/url-pattern&gt;
    &lt;/servlet-mapping&gt;

Não esquece de também definir a propriedade:

-Dcactus.contextURL=http://localhost:8080/MyApplication

Espero que te ajude, T+

P

cara, o web.xml esta configurado sim…alem do ServletRedirector tambem esta mapeado o ServletTestRunner q eh esse o usado no exemplo…

agora a propriedade: cactus.contextURL=http://localhost:8080/MyApplication

eu configuro se eu utilizar o ant pra rodar os testes certo? como eu disse antes eu estou testando pelo browser

http://localhost:8180/etktTest/ServletRedirector?suite=javali.etkt.servlet.test.TestSampleServlet&xsl=cactus-report.xsl

lembrando q eu estou fazendo deploy com o plug-in do tomcat pro eclipse…

o problema persiste…

I

Na verdade a propriedade de endereço é necessária se fores executar pelo JUnit mesmo. De outra forma desconheço. T+

P

cara…configurei p cactus.properties pra executar os testes via JUnit, porem agora tenho o seguinte erro:

<blockquote>java.net.ConnectException: Connection refused

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)

at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)

at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)

at java.net.Socket.connect(Socket.java:452)

at java.net.Socket.connect(Socket.java:402)

at java.net.Socket.<init>(Socket.java:309)

at java.net.Socket.<init>(Socket.java:124)

at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:86)

at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:652)

at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:628)

at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:526)

at org.apache.cactus.internal.client.connector.http.HttpClientConnectionHelper.connect_aroundBody0(HttpClientConnectionHelper.java:142)

at org.apache.cactus.internal.client.connector.http.HttpClientConnectionHelper.connect_aroundBody1$advice(HttpClientConnectionHelper.java:306)

at org.apache.cactus.internal.client.connector.http.HttpClientConnectionHelper.connect(HttpClientConnectionHelper.java)

at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.callRunTest(DefaultHttpClient.java:162)

at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.doTest_aroundBody0(DefaultHttpClient.java:80)

at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.doTest_aroundBody1$advice(DefaultHttpClient.java:306)

at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.doTest(DefaultHttpClient.java)

at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runWebTest(HttpProtocolHandler.java:159)

at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runTest_aroundBody0(HttpProtocolHandler.java:80)

at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runTest_aroundBody1$advice(HttpProtocolHandler.java:306)

at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runTest(HttpProtocolHandler.java)

at org.apache.cactus.internal.client.ClientTestCaseCaller.runTest(ClientTestCaseCaller.java:144)

at org.apache.cactus.internal.AbstractCactusTestCase.runBareClient(AbstractCactusTestCase.java:215)

at org.apache.cactus.internal.AbstractCactusTestCase.runBare(AbstractCactusTestCase.java:133)

at junit.framework.TestResult$1.protect(TestResult.java:106)

at junit.framework.TestResult.runProtected(TestResult.java:124)

at junit.framework.TestResult.run(TestResult.java:109)

at junit.framework.TestCase.run(TestCase.java:118)

at junit.framework.TestSuite.runTest(TestSuite.java:208)

at junit.framework.TestSuite.run(TestSuite.java:203)

at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)

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)

faz alguma ideia?

P

problema de conection refused resolvido....o meu tomcat aqui nao usa a porta 8080, e eu tinha deixado assim no cactus.properties......agora um novo problema, hehehehe

org.apache.cactus.util.ChainedRuntimeException&#58; Failed to get the test results at &#91;http&#58;//localhost&#58;8180/etktTest/ServletRedirector&#93;
	at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.doTest_aroundBody0&#40;DefaultHttpClient.java&#58;92&#41;
	at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.doTest_aroundBody1$advice&#40;DefaultHttpClient.java&#58;306&#41;
	at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.doTest&#40;DefaultHttpClient.java&#41;
	at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runWebTest&#40;HttpProtocolHandler.java&#58;159&#41;
	at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runTest_aroundBody0&#40;HttpProtocolHandler.java&#58;80&#41;
	at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runTest_aroundBody1$advice&#40;HttpProtocolHandler.java&#58;306&#41;
	at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runTest&#40;HttpProtocolHandler.java&#41;
	at org.apache.cactus.internal.client.ClientTestCaseCaller.runTest&#40;ClientTestCaseCaller.java&#58;144&#41;
	at org.apache.cactus.internal.AbstractCactusTestCase.runBareClient&#40;AbstractCactusTestCase.java&#58;215&#41;
	at org.apache.cactus.internal.AbstractCactusTestCase.runBare&#40;AbstractCactusTestCase.java&#58;133&#41;
	at junit.framework.TestResult$1.protect&#40;TestResult.java&#58;106&#41;
	at junit.framework.TestResult.runProtected&#40;TestResult.java&#58;124&#41;
	at junit.framework.TestResult.run&#40;TestResult.java&#58;109&#41;
	at junit.framework.TestCase.run&#40;TestCase.java&#58;118&#41;
	at junit.framework.TestSuite.runTest&#40;TestSuite.java&#58;208&#41;
	at junit.framework.TestSuite.run&#40;TestSuite.java&#58;203&#41;
	at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run&#40;JUnit3TestReference.java&#58;128&#41;
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run&#40;TestExecution.java&#58;38&#41;
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests&#40;RemoteTestRunner.java&#58;460&#41;
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests&#40;RemoteTestRunner.java&#58;673&#41;
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run&#40;RemoteTestRunner.java&#58;386&#41;
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main&#40;RemoteTestRunner.java&#58;196&#41;
org.apache.cactus.internal.client.ParsingException&#58; Not a valid response &#91;404 Servlet ServletRedirector is not available&#93;
	at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.callGetResult&#40;DefaultHttpClient.java&#58;211&#41;
	at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.doTest_aroundBody0&#40;DefaultHttpClient.java&#58;87&#41;
	at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.doTest_aroundBody1$advice&#40;DefaultHttpClient.java&#58;306&#41;
	at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.doTest&#40;DefaultHttpClient.java&#41;
	at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runWebTest&#40;HttpProtocolHandler.java&#58;159&#41;
	at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runTest_aroundBody0&#40;HttpProtocolHandler.java&#58;80&#41;
	at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runTest_aroundBody1$advice&#40;HttpProtocolHandler.java&#58;306&#41;
	at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runTest&#40;HttpProtocolHandler.java&#41;
	at org.apache.cactus.internal.client.ClientTestCaseCaller.runTest&#40;ClientTestCaseCaller.java&#58;144&#41;
	at org.apache.cactus.internal.AbstractCactusTestCase.runBareClient&#40;AbstractCactusTestCase.java&#58;215&#41;
	at org.apache.cactus.internal.AbstractCactusTestCase.runBare&#40;AbstractCactusTestCase.java&#58;133&#41;
	at junit.framework.TestResult$1.protect&#40;TestResult.java&#58;106&#41;
	at junit.framework.TestResult.runProtected&#40;TestResult.java&#58;124&#41;
	at junit.framework.TestResult.run&#40;TestResult.java&#58;109&#41;
	at junit.framework.TestCase.run&#40;TestCase.java&#58;118&#41;
	at junit.framework.TestSuite.runTest&#40;TestSuite.java&#58;208&#41;
	at junit.framework.TestSuite.run&#40;TestSuite.java&#58;203&#41;
	at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run&#40;JUnit3TestReference.java&#58;128&#41;
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run&#40;TestExecution.java&#58;38&#41;
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests&#40;RemoteTestRunner.java&#58;460&#41;
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests&#40;RemoteTestRunner.java&#58;673&#41;
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run&#40;RemoteTestRunner.java&#58;386&#41;
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main&#40;RemoteTestRunner.java&#58;196&#41;

alguma ideia?

Criado 28 de novembro de 2006
Ultima resposta 28 de nov. de 2006
Respostas 5
Participantes 2