我得到了一个"mavenized“webapp项目,在那之后我终于得到了我的文件.war,我把它部署到Tomcat6中,但我不能弄清楚上下文,我得到了这个错误:
GRAVE: Erreur lors de la configuration de la classe d'écoute de l'application (application listener) application.util.SessionListener
java.lang.ClassNotFoundException: application.util.SessionListener
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4153)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4709)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1060)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:822)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1060)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:759)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)SessionListener类的实现方式如下:
package application.util;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class SessionListener implements HttpSessionListener {
private final Log log = LogFactory.getLog(this.getClass());
public void sessionCreated(HttpSessionEvent event) {
log.debug("session créée : " + event.getSession().getId());
}
public void sessionDestroyed(HttpSessionEvent event) {
}
}web.xml
<!-- Spring intialisation -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<listener>
<listener-class>
application.util.SessionListener
</listener-class>
</listener>我使用到DB的适当连接配置了Tomcat的文件context.xml。我使用Tomcat6和JDK1.7
发布于 2015-12-23 18:19:58
您的web.xml中可能有一个声明,如下所示:
<web-app ...>
<listener>
<listener-class>application.util.SessionListener</listener-class>
</listener>
</web-app>这意味着您的SessionListener类(在WEB-INF/classes中找到的)必须在application.util包中。例如,编译器需要将它编译成WEB-INF/classes/application/util/SessionListener.class (不要只是把它移到那里)。
或者,更改web.xml中的声明以省略application.util.部件
编辑:我不确定如何阅读你的评论-它可能已经在那个包里了。如果确实是这样,那么还有两个选择:
SessionListener SessionListener中很容易遗漏这一点)。如果它们丢失了,JVM也不能实例化SessionListener类的对象,导致类似的problems.Log和LogFactory引用几分钟,再试一次。即使它不可能是这样,也最好通过尝试来排除它,而不是通过说它“不可能”来排除它。https://stackoverflow.com/questions/34432573
复制相似问题