繁体   English   中英

Eclipse + Velocity = HTTP状态500

[英]Eclipse + Velocity = HTTP Status 500

我在尝试使最简单的Velocity项目在Eclipse 4.4(Luna)中运行时遇到了很多问题。

我创建了一个在Tomcat 7.0服务器上运行的动态Web项目,该服务器已在Eclipse中设置并启动。

我将一个简单的index.vm添加到WebContent文件夹中:

<html>
<body>
#set( $foo = "Velocity" )
Hello $foo World!
</body>
<html>

我这样修改web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID"
  version="2.5">

<display-name>Velocity_Test</display-name>
<welcome-file-list>
<welcome-file>index.vm</welcome-file>
</welcome-file-list>

<servlet>
<servlet-name>velocity</servlet-name>
<servlet-class>
  org.apache.velocity.tools.view.servlet.VelocityViewServlet
</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>velocity</servlet-name>
<url-pattern>*.vm</url-pattern>
</servlet-mapping>
</web-app>

不使用初始化参数。

问题似乎出在罐子上。

我试图将两个Velocity 1.7 jar复制到WEB-INF / lib文件夹中。

我试图在Java构建路径属性中将罐子添加为外部罐子。

我试图将引用添加到部署程序集中的jar中。

但是,无论我尝试什么,结果始终是:

HTTP状态500-实例化servlet类org.apache.velocity.tools.view.servlet.VelocityViewServlet时出错

例外:

javax.servlet.ServletException:实例化Servlet类org.apache.velocity.tools.view.servlet.VelocityViewServlet org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)org.apache.catalina.valves.ErrorReportValveve时出错.invoke(ErrorReportValve.java:100)org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)org.apache.coyote .http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:603)org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java :310)java.util.concurrent.ThreadPoolExecutor.runWorker(未知源)java.util.concurrent.ThreadPoolExecutor $ Worker.run(未知源)java.lang.Thread.run(未知源)

根本原因:

java.lang.ClassNotFoundException:org.apache.velocity.tools.view.servlet.VelocityViewServlet org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702)org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader .java:1547)org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)org.apache.catalina.valves.AccessLogValve .invoke(AccessLogValve.java:953)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)org.apache.coyote .AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:603)org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:310)java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)java。 util.concurrent.ThreadPoolExecutor $ Worker.run(未知源)java.lang.Thread.run(U 未知来源)

任何帮助都将受到欢迎。

干杯,丹尼斯

原因是ClassNotFoundException 将依赖项添加到项目。 如果使用maven(或其他工具来构建项目),则只需将依赖项添加到pom.xml文件即可。

<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity</artifactId>
    <version>1.7</version>
</dependency>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM