2014-10-27 85 views
3

我想首先說明我對所有這些意味着Java,Eclipse,模板引擎都是新手。Eclipse中的Apache Velocity錯誤[Java,Eclipse Luna,Velocity 2.0,VelocityView,Tomcat 7]

在我試圖創建將運行按預期我使用了Eclipse露娜(EE),Tomcat的7,阿帕奇Velocity1.7,速度工具2.0 Velocity模板,VelocityToolsView 2.0

問題是,當我從Eclipse啓動Tomcat(如果可能,運行該項目),然後轉到「localhost:8080/VelocityTemplateHomework4/index.vm」,它只是拋出一整頁錯誤「HTTP狀態500 - 錯誤實例化servlet類org.apache .velocity.tools.view.servlet.VelocityViewServlet「

error

在Eclipse(EE)我已經basicaly遵循了這一教程

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> 

toolbox.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(這對於例如,如果你的教程網站上看到有一個incorect關閉HTML標籤)

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

左側的文件結構: myStructure

對不起,對於很長的文章,任何幫助將是apreciated!

+0

您是否嘗試過在org.apache.velocity.tools.view.servlet.VelocityViewServlet中刪除web.xml中的尾部空格? – Jako 2014-10-27 18:55:02

+0

@Jako我現在嘗試了,可惜它沒有解決問題:(但是謝謝你的回覆。我也會在這篇文章中編輯代碼。 – 2014-10-27 19:01:17

回答

0

它似乎沒有找到你的圖書館。

我會嘗試將速度庫移動到您的WEB-INF/lib文件夾中,以便它們與您的應用程序一起部署在服務器上,或嘗試將速度庫添加到tomcat服務器的lib文件夾中。

+0

抱歉,你是什麼意思「移動速度庫」?從它們的路徑中將2個速度和其他2個速度工具的jar文件複製到WEB-INF/lib文件夾中並將它們再次添加到Eclipse或?中的項目中(正如我剛纔提到的,我對此是新手) – 2014-10-27 19:33:51

+0

是的,我會複製將文件放入WEB-INF/lib中,然後更新我的項目中的引用(右鍵單擊>屬性> Java構建路徑)。 – Jako 2014-10-27 20:33:20

+0

仍然顯示一個錯誤,不同的一個 – 2014-10-28 17:05:41