- - PR -
StrutsTestCaseについて。
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2002-11-19 09:58
こんにちは。クボタです。
現在StrutsTestCaseの導入を検討していまして、サンプルで試しているのですが以下のエラーが出てしまい、うまくいきません。 C:\Program Files\Apache Tomcat 4.0\webapps\strtestcase\WEB-INF\classes>java junit.textui.TestRunner serv.SearchActionTest .E.E Time: 0.562 There were 2 errors: 1) testMatchSearchAction(serv.SearchActionTest)org.apache.cactus.util.ChainedRun timeException: Failed to get the test results. This is probably due to an error that happened on the server side when trying to execute the tests. Here is what was returned by the server : [<html><head><title>Apache Tomcat/4.0.3 - Error rep ort</title><STYLE><!--H1{font-family : sans-serif,Arial,Tahoma;color : white;bac kground-color : #0086b2;} BODY{font-family : sans-serif,Arial,Tahoma;color : bla ck;background-color : white;} B{color : white;background-color : #0086b2;} HR{co lor : #0086b2;} --></STYLE> </head><body><h1>Apache Tomcat/4.0.3 - HTTP Status 4 04 - /ServletRedirector</h1><HR size="1" noshade><p><b>type</b> Status report</p ><p><b>message</b> <u>/ServletRedirector</u></p><p><b>description</b> <u>The req uested resource (/ServletRedirector) is not available.</u></p><HR size="1" nosha de></body></html>] at org.apache.cactus.client.AbstractHttpClient.dispatch2_doTest(Abstract HttpClient.java;org/apache/cactus/util/log/LogAspect.aj(1k):120) at org.apache.cactus.client.AbstractHttpClient.around2_doTest(AbstractHt tpClient.java;org/apache/cactus/util/log/LogAspect.aj(1k):1236) at org.apache.cactus.client.AbstractHttpClient.doTest(AbstractHttpClient .java;org/apache/cactus/util/log/LogAspect.aj(1k):104) at org.apache.cactus.AbstractWebTestCase.runGenericTest(AbstractWebTestC ase.java:260) at org.apache.cactus.ServletTestCase.runTest(ServletTestCase.java:133) at org.apache.cactus.AbstractTestCase.runBare(AbstractTestCase.java:195) org.apache.cactus.client.ParsingException: Not a valid response at org.apache.cactus.client.WebTestResultParser.readRootElement(WebTestR esultParser.java;org/apache/cactus/util/log/LogAspect.aj(1k):140) at org.apache.cactus.client.WebTestResultParser.dispatch29_parse(WebTest ResultParser.java;org/apache/cactus/util/log/LogAspect.aj(1k):101) at org.apache.cactus.client.WebTestResultParser.around29_parse(WebTestRe sultParser.java;org/apache/cactus/util/log/LogAspect.aj(1k):1236) at org.apache.cactus.client.WebTestResultParser.parse(WebTestResultParse r.java;org/apache/cactus/util/log/LogAspect.aj(1k):96) at org.apache.cactus.client.AbstractHttpClient.callGetResult(AbstractHtt pClient.java;org/apache/cactus/util/log/LogAspect.aj(1k):230) at org.apache.cactus.client.AbstractHttpClient.dispatch2_doTest(Abstract HttpClient.java;org/apache/cactus/util/log/LogAspect.aj(1k):114) at org.apache.cactus.client.AbstractHttpClient.around2_doTest(AbstractHt tpClient.java;org/apache/cactus/util/log/LogAspect.aj(1k):1236) at org.apache.cactus.client.AbstractHttpClient.doTest(AbstractHttpClient .java;org/apache/cactus/util/log/LogAspect.aj(1k):104) at org.apache.cactus.AbstractWebTestCase.runGenericTest(AbstractWebTestC ase.java:260) at org.apache.cactus.ServletTestCase.runTest(ServletTestCase.java:133) at org.apache.cactus.AbstractTestCase.runBare(AbstractTestCase.java:195) (場所をとるので2個目のエラーは書いていませんが同じ内容です。) 環境は j2sdk1.4.0 tomcat4.0.3 junit3.8.1 cactus1.4.1 struts1.1b2 strutstestcase1.9 です。 どうかご教授よろしくお願いします。 |
|
投稿日時: 2002-11-19 10:33
Apache Tomcat/4.0.3 - HTTP Status 404 - /ServletRedirector
がでてますよね。URLが違うか(Cactus.Propertiesとか)、web.xmlでServletRedirector を登録し損なってはいないでしょうか? |
|
投稿日時: 2002-11-19 11:43
ponさんいつもありがとうございます。
以下にcactus.propertiesとweb.xmlを記します。 /WEB-INF/classes/cactus.properties cactus.servletRedirectorURL=http://localhost:8080/strtestcase/ServletRedirector/ /WEB-INF/web.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <servlet> <servlet-name>ServletRedirector</servlet-name> <servlet-class>org.apache.cactus.server.ServletTestRedirector</servlet-class> </servlet> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>application</param-name> <param-value>com.youcompany.struts.ApplicationResources</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>3</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>3</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>ServletRedirector</servlet-name> <url-pattern>/ServletRedirector/</url-pattern> </servlet-mapping> </web-app> それとスタックトレースがちょっと変わりまして C:\Program Files\Apache Tomcat 4.0\webapps\strtestcase\WEB-INF\classes>java junit.textui.TestRunner serv.SearchActionTest (↑プロンプトでの実行コマンド) .E.E Time: 0.063 There were 2 errors: 1) testMatchSearchAction(serv.SearchActionTest)org.apache.cactus.util.ChainedRun timeException: Missing Cactus property [cactus.contextURL] at org.apache.cactus.util.Configuration.getContextURL(Configuration.java :185) at org.apache.cactus.util.ServletConfiguration.getServletRedirectorURL(S ervletConfiguration.java:94) at org.apache.cactus.client.ServletHttpClient.getRedirectorURL(ServletHt tpClient.java:87) at org.apache.cactus.client.AbstractHttpClient.callRunTest(AbstractHttpC lient.java;org/apache/cactus/util/log/LogAspect.aj(1k):184) at org.apache.cactus.client.AbstractHttpClient.dispatch2_doTest(Abstract HttpClient.java;org/apache/cactus/util/log/LogAspect.aj(1k):109) at org.apache.cactus.client.AbstractHttpClient.around2_doTest(AbstractHt tpClient.java;org/apache/cactus/util/log/LogAspect.aj(1k):1236) at org.apache.cactus.client.AbstractHttpClient.doTest(AbstractHttpClient .java;org/apache/cactus/util/log/LogAspect.aj(1k):104) at org.apache.cactus.AbstractWebTestCase.runGenericTest(AbstractWebTestC ase.java:260) at org.apache.cactus.ServletTestCase.runTest(ServletTestCase.java:133) at org.apache.cactus.AbstractTestCase.runBare(AbstractTestCase.java:195) (場所をとるので2個目のエラーは書いていませんが同じ内容です。) 明らかにcontextURLが怪しいのですが、解決できません。 どうかよろしくお願いします。 |
|
投稿日時: 2002-11-19 12:00
多分cactus.propertiesの設定で抜けがあるのではないのでしょうか。
参考に私の動いているプロパティをのせます。 cactus.contextURL = http://localhost:8080/myapp cactus.servletRedirectorName = ServletRedirector cactus.jspRedirectorName = JspRedirector cactus.enableLogging = false cactus.ServletRedirectorURL = http://localhost:8080/myapp/ServletRedirector cactus.propertiesが一行だとするとcontextURLは設定されていませんよね? |
|
投稿日時: 2002-11-19 13:00
お返事ありがとうございます。
cactus.propertiesを上記のように変更したんですが、スタックトレースは最初に書き込んだものと同じやつが出てきました。 何かの参考になればとログをとってみました。 2002-11-19 12:57:41,437 INFO [main] (Log4JCategoryLog.java:88) - >> "GET /strtestcase/ServletRedirector?Cactus_TestMethod=testMatchSearchAction&Cactus_TestClass=serv.SearchActionTest&Cactus_AutomaticSession=true&Cactus_Service=CALL_TEST HTTP/1.1 " 2002-11-19 12:57:41,531 INFO [main] (Log4JCategoryLog.java:88) - >> "Content-type: application/x-www-form-urlencoded " 2002-11-19 12:57:41,531 INFO [main] (Log4JCategoryLog.java:88) - >> "Host: localhost " 2002-11-19 12:57:41,531 INFO [main] (Log4JCategoryLog.java:88) - >> "User-Agent: Jakarta HTTP Client/2.0.0a1 " 2002-11-19 12:57:41,531 INFO [main] (Log4JCategoryLog.java:88) - >> \r\n 2002-11-19 12:57:41,593 INFO [main] (Log4JCategoryLog.java:88) - << "HTTP/1.1 404 /ServletRedirector" [\r\n] 2002-11-19 12:57:41,593 INFO [main] (Log4JCategoryLog.java:88) - << "Connection: close" [\r\n] 2002-11-19 12:57:41,593 INFO [main] (Log4JCategoryLog.java:88) - << "Date: Tue, 19 Nov 2002 03:57:41 GMT" [\r\n] 2002-11-19 12:57:41,593 INFO [main] (Log4JCategoryLog.java:88) - << "Server: Apache Tomcat/4.0.3 (HTTP/1.1 Connector)" [\r\n] 2002-11-19 12:57:41,593 INFO [main] (Log4JCategoryLog.java:88) - << "<html><head><title>Apache Tomcat/4.0.3 - Error report</title><STYLE><!--H1{font-family : sans-serif,Arial,Tahoma;color : white;background-color : #0086b2;} BODY{font-family : sans-serif,Arial,Tahoma;color : black;background-color : white;} B{color : white;background-color : #0086b2;} HR{color : #0086b2;} --></STYLE> </head><body><h1>Apache Tomcat/4.0.3 - HTTP Status 404 - /ServletRedirector</h1><HR size="1" noshade><p><b>type</b> Status report</p><p><b>message</b> <u>/ServletRedirector</u></p><p><b>description</b> <u>The requested resource (/ServletRedirector) is not available.</u></p><HR size="1" noshade></body></html>" 2002-11-19 12:57:41,609 INFO [main] (Log4JCategoryLog.java:88) - >> "GET /strtestcase/ServletRedirector?Cactus_Service=GET_RESULTS HTTP/1.1 " 2002-11-19 12:57:41,609 INFO [main] (Log4JCategoryLog.java:88) - >> "Content-type: application/x-www-form-urlencoded " 2002-11-19 12:57:41,625 INFO [main] (Log4JCategoryLog.java:88) - >> "Host: localhost " 2002-11-19 12:57:41,625 INFO [main] (Log4JCategoryLog.java:88) - >> "User-Agent: Jakarta HTTP Client/2.0.0a1 " 2002-11-19 12:57:41,625 INFO [main] (Log4JCategoryLog.java:88) - >> \r\n 2002-11-19 12:57:41,625 INFO [main] (Log4JCategoryLog.java:88) - << "HTTP/1.1 404 /ServletRedirector" [\r\n] 2002-11-19 12:57:41,625 INFO [main] (Log4JCategoryLog.java:88) - << "Connection: close" [\r\n] 2002-11-19 12:57:41,625 INFO [main] (Log4JCategoryLog.java:88) - << "Date: Tue, 19 Nov 2002 03:57:41 GMT" [\r\n] 2002-11-19 12:57:41,625 INFO [main] (Log4JCategoryLog.java:88) - << "Server: Apache Tomcat/4.0.3 (HTTP/1.1 Connector)" [\r\n] 2002-11-19 12:57:41,640 INFO [main] (Log4JCategoryLog.java:88) - << "<html><head><title>Apache Tomcat/4.0.3 - Error report</title><STYLE><!--H1{font-family : sans-serif,Arial,Tahoma;color : white;background-color : #0086b2;} BODY{font-family : sans-serif,Arial,Tahoma;color : black;background-color : white;} B{color : white;background-color : #0086b2;} HR{color : #0086b2;} --></STYLE> </head><body><h1>Apache Tomcat/4.0.3 - HTTP Status 404 - /ServletRedirector</h1><HR size="1" noshade><p><b>type</b> Status report</p><p><b>message</b> <u>/ServletRedirector</u></p><p><b>description</b> <u>The requested resource (/ServletRedirector) is not available.</u></p><HR size="1" noshade></body></html>" 2002-11-19 12:57:41,656 INFO [main] (Log4JCategoryLog.java:88) - >> "GET /strtestcase/ServletRedirector?Cactus_TestMethod=testExecuteActionMappingActionFormHttpServletRequestHttpServletResponse&Cactus_TestClass=serv.SearchActionTest&Cactus_AutomaticSession=true&Cactus_Service=CALL_TEST HTTP/1.1 " 2002-11-19 12:57:41,656 INFO [main] (Log4JCategoryLog.java:88) - >> "Content-type: application/x-www-form-urlencoded " 2002-11-19 12:57:41,656 INFO [main] (Log4JCategoryLog.java:88) - >> "Host: localhost " 2002-11-19 12:57:41,656 INFO [main] (Log4JCategoryLog.java:88) - >> "User-Agent: Jakarta HTTP Client/2.0.0a1 " 2002-11-19 12:57:41,671 INFO [main] (Log4JCategoryLog.java:88) - >> \r\n 2002-11-19 12:57:41,671 INFO [main] (Log4JCategoryLog.java:88) - << "HTTP/1.1 404 /ServletRedirector" [\r\n] 2002-11-19 12:57:41,671 INFO [main] (Log4JCategoryLog.java:88) - << "Connection: close" [\r\n] 2002-11-19 12:57:41,671 INFO [main] (Log4JCategoryLog.java:88) - << "Date: Tue, 19 Nov 2002 03:57:41 GMT" [\r\n] 2002-11-19 12:57:41,671 INFO [main] (Log4JCategoryLog.java:88) - << "Server: Apache Tomcat/4.0.3 (HTTP/1.1 Connector)" [\r\n] 2002-11-19 12:57:41,687 INFO [main] (Log4JCategoryLog.java:88) - << "<html><head><title>Apache Tomcat/4.0.3 - Error report</title><STYLE><!--H1{font-family : sans-serif,Arial,Tahoma;color : white;background-color : #0086b2;} BODY{font-family : sans-serif,Arial,Tahoma;color : black;background-color : white;} B{color : white;background-color : #0086b2;} HR{color : #0086b2;} --></STYLE> </head><body><h1>Apache Tomcat/4.0.3 - HTTP Status 404 - /ServletRedirector</h1><HR size="1" noshade><p><b>type</b> Status report</p><p><b>message</b> <u>/ServletRedirector</u></p><p><b>description</b> <u>The requested resource (/ServletRedirector) is not available.</u></p><HR size="1" noshade></body></html>" 2002-11-19 12:57:41,687 INFO [main] (Log4JCategoryLog.java:88) - >> "GET /strtestcase/ServletRedirector?Cactus_Service=GET_RESULTS HTTP/1.1 " 2002-11-19 12:57:41,687 INFO [main] (Log4JCategoryLog.java:88) - >> "Content-type: application/x-www-form-urlencoded " 2002-11-19 12:57:41,687 INFO [main] (Log4JCategoryLog.java:88) - >> "Host: localhost " 2002-11-19 12:57:41,687 INFO [main] (Log4JCategoryLog.java:88) - >> "User-Agent: Jakarta HTTP Client/2.0.0a1 " 2002-11-19 12:57:41,687 INFO [main] (Log4JCategoryLog.java:88) - >> \r\n 2002-11-19 12:57:41,687 INFO [main] (Log4JCategoryLog.java:88) - << "HTTP/1.1 404 /ServletRedirector" [\r\n] 2002-11-19 12:57:41,703 INFO [main] (Log4JCategoryLog.java:88) - << "Connection: close" [\r\n] 2002-11-19 12:57:41,703 INFO [main] (Log4JCategoryLog.java:88) - << "Date: Tue, 19 Nov 2002 03:57:41 GMT" [\r\n] 2002-11-19 12:57:41,703 INFO [main] (Log4JCategoryLog.java:88) - << "Server: Apache Tomcat/4.0.3 (HTTP/1.1 Connector)" [\r\n] 2002-11-19 12:57:41,703 INFO [main] (Log4JCategoryLog.java:88) - << "<html><head><title>Apache Tomcat/4.0.3 - Error report</title><STYLE><!--H1{font-family : sans-serif,Arial,Tahoma;color : white;background-color : #0086b2;} BODY{font-family : sans-serif,Arial,Tahoma;color : black;background-color : white;} B{color : white;background-color : #0086b2;} HR{color : #0086b2;} --></STYLE> </head><body><h1>Apache Tomcat/4.0.3 - HTTP Status 404 - /ServletRedirector</h1><HR size="1" noshade><p><b>type</b> Status report</p><p><b>message</b> <u>/ServletRedirector</u></p><p><b>description</b> <u>The requested resource (/ServletRedirector) is not available.</u></p><HR size="1" noshade></body></html>" よろしくお願いします。 |
|
投稿日時: 2002-11-19 13:17
HTTP/1.1 404 /ServletRedirector
を解決しないとだめですねぇ。 HTTP/1.1 200 OK と出るはずです。 どうみてもないURLを指定してますよね。 関係ないかもしれませんがweb.xmlの /ServletRedirector/ の最後の/はいらないと思うのですが・・・ そのほかにもあるかもしれませんね。いらない/が。 |
|
投稿日時: 2002-11-19 14:26
迅速なお返事、本当にいつもありがとうございます。
確かに/ServletRedirector/の最後の/は不要でした。 http://homepage2.nifty.com/ymagic/struts/Impressions/ImpressionStrutsTestCase.html ここを参考にしてやっていたんですけど... その他テストケースの書き方とかも間違ってまして、何とかテストに通るようにはなりました。 ところでちょっと聞きたいのですが、TestRunnerを実行する時、textuiだと無事に終了するのですが、swingui, awtuiだとFailureになります。 こんな感じです。 junit.framework.AssertionFailedError: Exception in constructor: testMatchSearchAction (org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Jdk14Logger does not implement Log)←ここまでが1行。 at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:530) at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:285) at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:255) at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:375) at org.apache.cactus.util.JUnitVersionHelper.around146_getTestCaseName(JUnitVersionHelper.java;org/apache/cactus/util/log/LogAspect.aj(1k):1170) at org.apache.cactus.util.JUnitVersionHelper.getTestCaseName(JUnitVersionHelper.java;org/apache/cactus/util/log/LogAspect.aj(1k):103) at org.apache.cactus.AbstractTestCase.<init>(AbstractTestCase.java:124) at org.apache.cactus.AbstractWebTestCase.<init>(AbstractWebTestCase.java:86) at org.apache.cactus.ServletTestCase.<init>(ServletTestCase.java:119) at servletunit.struts.CactusStrutsTestCase.<init>(CactusStrutsTestCase.java:63) at serv.SearchActionTest.<init>(SearchActionTest.java:41) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:274) at junit.runner.BaseTestRunner.getTest(BaseTestRunner.java:103) Caused by: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Jdk14Logger does not implement Log at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:415) at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:523) ... 21 more Caused by: org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Jdk14Logger does not implement Log at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:411) ... 22 more ) あとコンソールにいつもこんな感じのメッセージが出ます。 2002/11/19 14:10:09 org.apache.struts.util.PropertyMessageResources <init> 情報: Initializing, config='org.apache.struts.action.ActionResources', returnNull=true 2002/11/19 14:10:10 org.apache.struts.action.RequestProcessor process 情報: Processing a 'GET' for path '/empSearch' 上記の2件を見るとログ処理に関係してるように思われるのですが、どこをいじれば設定などを変えられるのでしょうか? よろしくご教授お願いします。 |
|
投稿日時: 2002-11-19 15:00
バージョン違いによる例外だと思います。
J2EE1.3はJ2SE1.3なので・・・ Cactusのログでこけてますね。 もちろんコンソールでは寂しいと思いますので Antのjunitreportというタスクを使うとXMLから HTMLに変換してテスト結果が残せます。 #同様にServletTestRunnerでXSLをかませばブラウザで閲覧できます。 英語のドキュメントばかりで私は苦手なので行き当たりばったりで 例外を出しまくりました。これが正しいかは分かりませんが参考程度に・・・ JVMを起動させる際にオプションでcommons-loggingに設定すればJDK1.4のログは 使わないと思います。 |
