- - PR -
velocityを使用したサーブレットが表示できない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-02-28 12:02
4.1.31
いつもお世話になります。開発環境: j2sdk1.4.2_06、TOMCAT4.1.31、ECLIPSE2.1.3、MYSQL4.1、struts1.1、easystruts0.6.4です。 velocityを使ってみたいと思い、ここを参考にサンプルを動かそうとしています。上記の開発環境でこのサンプルとまったく同じことをしようとしてるのですが、いざやってみると下記のエラーが出てしまいます。使用したvelocityツールは velocity-tools-1.1.jar、velocity-dep-1.3.1.jar です。クラスパスは通ってるはずです。 ------------- ブラウザに表示されたエラー ------------------- exception javax.servlet.ServletException: org.apache.velocity.runtime. at org.apache.velocity.tools.view.servlet.VelocityViewServlet.initVelocity(VelocityViewServlet.java:286) at org.apache.velocity.tools.view.servlet.VelocityViewServlet.init(VelocityViewServlet.java:171) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:888) at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:621) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:163) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Unknown Source) root cause java.lang.ClassNotFoundException: org.apache.velocity.runtime. at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1407) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1252) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at org.apache.velocity.runtime.log.LogManager.createLogSystem(LogManager.java:161) at org.apache.velocity.runtime.RuntimeInstance.initializeLogger(RuntimeInstance.java:533) at org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:267) at org.apache.velocity.runtime.RuntimeSingleton.init(RuntimeSingleton.java:169) at org.apache.velocity.app.Velocity.init(Velocity.java:123) at org.apache.velocity.tools.view.servlet.VelocityViewServlet.initVelocity(VelocityViewServlet.java:281) at org.apache.velocity.tools.view.servlet.VelocityViewServlet.init(VelocityViewServlet.java:171) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:888) at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:621) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:163) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Unknown Source) 実際、ECLIPSEのパッケージエクスプローラから該当jarファイルのクラス構成を見てみても、org.apache.velocity.runtime. 以下にさらに7つのクラスがあるみたいです。上のエラーメッセージはorg.apache.velocity.runtime.が見つかりませんって言ってると思うのですが、org.apache.velocity.runtime.はクラスなのでしょうか・・・? どこが間違ってるのかわかりません。同じプロジェクト内にstrutsを使用したページがあって、それはちゃんと表示されるのです。sample.vmにアクセスするとエラーになるのです。参考にしたサイトからコピペしたコードではありますが、以下のとおりです。 ---------------- web.xml --------------------- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <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>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> <servlet-name>velocity</servlet-name> <servlet-class> org.apache.velocity.tools.view.servlet.VelocityViewServlet </servlet-class> <init-param> <param-name>org.apache.velocity.toolbox</param-name> <param-value>/WEB-INF/velocity-toolbox.xml</param-value> </init-param> <init-param> <param-name>org.apache.velocity.properties</param-name> <param-value>/WEB-INF/velocity.properties</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>velocity</servlet-name> <url-pattern>*.vm</url-pattern> </servlet-mapping> </web-app> ---------------- velocity-toolbox.xml --------------------- <?xml version="1.0"?> <toolbox> <data type="number"> <key>version</key> <value>1.1</value> </data> <tool> <key>date</key> <scope>application</scope> <class>org.apache.velocity.tools.generic.DateTool</class> </tool> </toolbox> ---------------- velocity.properties --------------------- runtime.log=velocity.log runtime.log.logsystem.class=org.apache.velocity.runtime. log.AvalonLogSystem input.encoding=Windows-31J output.encoding=Windows-31J ---------------- sample.vm --------------------- <html> <body> #set($message = "Velocityが動作しています。") $message<br> Velocityのバージョン: $version<br> $date </body> </html> ---------- コード終わり ------------------- ご存知の方がいらっしゃいましたらご教授いただきたく質問させていただきました。なにとぞよろしくお願いします。 | ||||
|
投稿日時: 2005-02-28 13:06
これは、たまたま表示が折り返されているのではなくて、本当にこの位置で改行しているのでしょうか? だとすると、「org.apache.velocity.runtime.」という変なクラスを使おうとするのが当然ではないかと。 | ||||
|
投稿日時: 2005-02-28 13:07
runtime.で改行入ってるせいじゃないでしょうかね? 違ったらごめんなさい。 | ||||
|
投稿日時: 2005-02-28 13:09
ご返答いただきありがとうございます。ソースをじっくり見ずに質問してしまって申し訳ございませんでした。変な改行が入ってるのに気づきませんでした。当たり前ですよねー。情けない・・・。
該当行を削除することによって正常に動作しました。ありがとうございました。 [ メッセージ編集済み 編集者: take 編集日時 2005-02-28 13:11 ] |
1