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文件夹,一切正常。这很奇怪,因为我没有改变任何与这堂课相关的东西。谢谢大家的发布!
你检查了你的Tomcat日志吗? 'catalina.out'应该有些东西可以帮助你确定问题。 – AJPerez 2014-12-03 11:46:57