【问题标题】:Apache Velocity error in Eclipse [Java, Eclipse Luna, Velocity 2.0, VelocityView, Tomcat 7]Eclipse 中的 Apache Velocity 错误 [Java、Eclipse Luna、Velocity 2.0、VelocityView、Tomcat 7]
【发布时间】:2014-10-27 18:28:21
【问题描述】:

我想首先说明我 90% 对 Java、Eclipse、模板引擎都是新手。

在尝试创建按预期运行的速度模板时,我使用了 Eclipse Luna(EE)、Tomcat 7、Apache Velocity1.7、Velocity Tools 2.0、VelocityToolsView 2.0

问题是当我从 Eclipse 启动 Tomcat(如果可能的话,基本上是运行项目),然后转到“localhost:8080/VelocityTemplateHomework4/index.vm”,它只会给我一个完整的页面出现错误“HTTP 状态 500 - 实例化 servlet 类 org.apache.velocity.tools.view.servlet.VelocityViewServlet 时出错”

在 Eclipse (EE) 中,我基本上遵循了这个 tutorial

http://thegeekhead.blogspot.ro/2009/06/how-to-configure-eclipse-tomact-55.html

无论如何我都会发布我的代码,但也请检查链接(可能存在问题,因为它有点过时了)

SimpleServlet.java

package myPackage;

public class SimpleServlet {
    private String message = "Hello Damn World!!!";

    public String getMessage() {
        return message;
    }

    public void setMessage(String m) {
        message = m;
    }

    /** To test exception handling in templates. */
    public boolean whine() {
        throw new IllegalArgumentException();
    }
}

web.xml

<?xml version='1.0' encoding='utf-8'?>
<web-app>
    <!-- Define Velocity template compiler -->
    <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/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>
    </servlet>

    <!-- Map *.vm files to Velocity -->
    <servlet-mapping>
        <servlet-name>velocity</servlet-name>
        <url-pattern>*.vm</url-pattern>
    </servlet-mapping>

</web-app>

工具箱.xml

<?xml version="1.0"?>

<toolbox>
    <xhtml>true</xhtml>
    <tool>
        <key>serv</key>
        <scope>request</scope>
        <request-path>index.vm</request-path>
        <class>SimpleServlet</class>
    </tool>
    <data type="number">
        <key>version</key>
        <value>1.1</value>
    </data>
    <data type="boolean">
        <key>isSimple</key>
        <value>true</value>
    </data>
    <data type="string">
        <key>foo</key>
        <value>this is foo.</value>
    </data>
    <data type="string">
        <key>bar</key>
        <value>this is bar from velocity.</value>
    </data>
    <tool>
        <key>map</key>
        <scope>session</scope>
        <class>java.util.HashMap</class>
    </tool>
    <tool>
        <key>date</key>
        <scope>application</scope>
        <class>org.apache.velocity.tools.generic.DateTool</class>
    </tool>
</toolbox>

velocity.properties

webapp.resource.loader.path=/WEB-INF/templates/

...和一个简单的 index.vm(例如,如果您在教程网站上注意到有一个不正确的结束 html 标记)

<html>
<body>
<h2>My text is :  $serv.getMessage() </h2>
</body>
</html>

左侧的文件结构:

抱歉发了这么长的帖子,如有任何帮助,将不胜感激!

【问题讨论】:

  • 您是否尝试过在 org.apache.velocity.tools.view.servlet.VelocityViewServlet 之后删除 web.xml 中的尾随空格?
  • @Jako 我现在试过了,遗憾的是它没有解决问题:(,但谢谢你的回复。我也会编辑这篇文章中的代码。

标签: java eclipse tomcat servlets velocity


【解决方案1】:

似乎没有找到您的库。

我会尝试将速度库移动到您的 WEB-INF/lib 文件夹中,以便将它们与您的应用程序一起部署在服务器上,或者尝试将速度库添加到您的 tomcat 服务器的 lib 文件夹中。

【讨论】:

  • 抱歉,“移动速度库”是什么意思?就像将 2 个速度和其他 2 个速度工具 jar 从它们的路径复制到 WEB-INF/lib 文件夹中,然后再次将它们添加到 Eclipse 中的项目中还是? (正如我所提到的,我对这一切都很陌生)
  • 是的,我会将文件复制到 WEB-INF /lib 中,然后在我的项目中更新引用(右键单击>属性>Java 构建路径)。
  • 这次我尝试做一个全新的项目,有点不同,但核心基本相同,结果与屏幕截图中的错误相同,我正式退出了这个****。如果有人知道问题的正确答案,请随时写出来!
  • 我注意到让一个简单的速度项目通过 eclipse 运行对我有同样的影响。请让我们知道您是否可以正常工作。卡在同一个问题上,再也懒得看速度了。如果 Eclipse 中至少有一个关于速度的教程,那就太好了。
  • 嘿,对不起,但正如我上面所说,我只是放弃了尝试,这并不是那么重要,只是作为我当时的任务的补充。
猜你喜欢
  • 2014-12-10
  • 2014-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-13
  • 2018-02-17
  • 1970-01-01
  • 2011-06-25
相关资源
最近更新 更多