2014-12-03 105 views
0

我在我的項目中使用了servlet。今天一切都很好用。我使用GWT,但我認爲它不重要。在我的服務器端,我需要得到上下文路徑一樣,Servlet不會初始化

path = ConfAppServer.getRealContextPath() + "/docviewer"; 
logger.debug("Path = " + path); 

但在日誌文件中我得到

Path = null/docviewer 

ConfAppServer類包含服務器端的配置如下。當您運行servlet ConfigServlet時,會設置一些設置。

public class ConfAppServer { 
    private static String realContextPath; 
    public static String getContextPath() { 
     return contextPath; 
    } 

    public static String getRealContextPath() { 
     return realContextPath; 
    } 
} 

public class ConfAppServlet extends HttpServlet { 

public void init(ServletConfig config) throws ServletException { 
    LOG.info("begin ConfAppServlet init"); 
} 

但是我沒有得到最後的日誌信息。 Servlet不會初始化。 這裏是我的web.xml文件

<servlet> 
    <description>Servlet to identify and download the application settings</description> 
    <servlet-name>ConfAppServlet</servlet-name> 
    <servlet-class>com.myproject.servlet.ConfAppServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

但是當我在Eclipse中運行我的項目,servlet的正常工作。但是當我在服務器上部署戰爭時,servlet停止工作。

我使用Eclipse Indigo與默認的內部服務器。而我的外部服務器是Apache Tomcat 7

請幫我解決我的問題。我該怎麼辦?爲什麼這個servlet不會初始化以及如何解決它?

編輯 在我的tomcat的日誌文件,我發現這條線

ERROR: 'C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\null\docviewer 

編輯2 我發現錯誤在我的日誌文件

Dec 03, 2014 10:14:26 AM org.apache.catalina.core.ApplicationContext log 
INFO: Marking servlet ConfAppServlet as unavailable 
Dec 03, 2014 10:14:26 AM org.apache.catalina.core.StandardContext loadOnStartup 
SEVERE: Servlet /egr threw load() exception 
java.lang.ClassNotFoundException: by.avest.crypto.pkcs11.provider.AvestProvider 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523) 
    at java.lang.Class.getDeclaredConstructors0(Native Method) 
    at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) 
    at java.lang.Class.getConstructor0(Unknown Source) 
    at java.lang.Class.newInstance0(Unknown Source) 
    at java.lang.Class.newInstance(Unknown Source) 
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:127) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1099) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1043) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4957) 
    at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5284) 
    at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5279) 
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

編輯3 我將缺少的類添加到lib文件夾,一切正常。這很奇怪,因爲我沒有改變任何與這堂課相關的東西。謝謝大家的發佈!

+0

你檢查了你的Tomcat日誌嗎? 'catalina.out'應該有些東西可以幫助你確定問題。 – AJPerez 2014-12-03 11:46:57

回答

-1

嘗試在init方法中調用super.init(config)