0

基本上我无法克服这个错误,一次又一次地尝试。

我已经将我当前的 javaee 项目移植到 maven,从 maven 3.0.3 发起了一场战争,这似乎没有部署在 tomcat 6.0.10 中。我使用的是 jdk 1.7(虽然,我使用 jdk 1.6 和 tomcat 7 时遇到了同样的错误)

它抛出的错误是

Mar 15, 2013 10:24:39 AM org.apache.catalina.loader.WebappClassLoader validateJa
rFile
INFO: validateJarFile(D:\apache-tomcat-6.0.10\webapps\Name\WEB-INF\lib\
javaee-api-5.0-1.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Off
ending class: javax/servlet/Servlet.class
Mar 15, 2013 10:24:39 AM org.apache.catalina.loader.WebappClassLoader validateJa
rFile
INFO: validateJarFile(D:\apache-tomcat-6.0.10\webapps\Name\WEB-INF\lib\
servlet-api-2.5.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offe
nding class: javax/servlet/Servlet.class
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further detail
s.
Inside Cache Manager Initialization new ....
java.lang.NullPointerException
Mar 15, 2013 10:24:59 AM org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
Mar 15, 2013 10:24:59 AM org.apache.catalina.core.StandardContext start
SEVERE: Context [/Name] startup failed due to previous errors

当我试图找出错误“jar not loaded. See Servlet Spec 2.3, section 9.7.2”时,它说首选 jar 必须在编译和运行时都存在,所以我添加了 servlet-api-2.5.jar在 pom.xml 中。javaee-api-5.0.1.jar 已经在那里了。

添加依赖项后,我得到同样的错误。

任何人都对这种奇怪的行为有所了解。

4

2 回答 2

3

将servlet api的范围更改为,<scope>provided</scope>因为它是由tomcat提供的。并且javaee-api不是由 tomcat 提供的,因此请将其保存在您的 webapp 中。

Tomcat 不支持完整的 Java EE 堆栈,但仅支持其中的一部分(即支持 servlet-api,但不支持 JTA、JPA、JMS):这就是您需要包含javaee-api在 Web 应用程序中的原因

于 2013-03-15T09:17:27.130 回答
1

“jar 未加载”错误是由javax/servlet/Servlet.classTomcat 运行时可供选择的倍数引起的。从您应用javaee-api-5.0-1.jar的. Tomcat 已经提供了这些 jar。为了验证这一点,看看这些罐子已经在那里了。servlet-api-2.5.jarWEB-INF/lib<TOMCAT_HOME>\lib

于 2013-03-15T06:18:00.857 回答