我正在使用Eclipse(Java EE/Helios)IDE,struts2和Tomcat 7.0.6。我的web应用程序昨天工作正常,但是一些未知的更改已将其杀死,服务器启动但不再正常运行。试图查看.jsp文件时,我收到以下消息:Tomcat无法加载Struts 2(异常启动过滤器struts2)
说明请求的资源() 不可用。
(如果它甚至决定忍受的错误的话)
控制台中的样子给我这个错误,当我尝试启动通过Eclipse Tomcat服务器,并加载“Add.jsp”页面:
...
INFO: Starting service Catalina
Feb 2, 2011 1:38:08 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.6
Feb 2, 2011 1:38:08 PM org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter struts2
java.lang.NoClassDefFoundError: javax/servlet/Filter
at java.lang.ClassLoader.findBootstrapClass(Native Method)
at java.lang.ClassLoader.findBootstrapClassOrNull(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1488)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:252)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4382)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5040)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5035)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Feb 2, 2011 1:38:08 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error filterStart
Feb 2, 2011 1:38:08 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/StrutsTest] startup failed due to previous errors
Feb 2, 2011 1:38:09 PM org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter struts2
java.lang.NoClassDefFoundError: javax/servlet/Filter
at java.lang.ClassLoader.findBootstrapClass(Native Method)
at java.lang.ClassLoader.findBootstrapClassOrNull(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
...
这似乎现在是我以前所做的所有struts2应用程序的问题。重新启动Eclipse和/或我的电脑似乎没有帮助。
这里是我的web.xml的副本(这是非常相似的,在整个每个项目):
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Development Environments</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>Add.jsp</welcome-file>
</welcome-file-list>
</web-app>
我试着在我的类路径中的最新版本更新某些.jar文件(虽然我没没有期望的工作)。有谁知道什么可能会出错?如果您知道还需要什么,我很乐意提供更多信息。
它看起来就像你错过了`servlet-api` JAR。这应该与Tomcat打包在一起。 – 2011-02-02 22:26:24
我在C:\ apache-tomcat-7.0.6 \ lib目录中有'servlet-api.jar',以及其他.jar文件(catalina.jar,jasper.jar,tomcat-api.jar,catalina-ant .jar等) 把servlet-api.jar放在不同的目录下?或者我应该以某种方式包括它? – Tasyne 2011-02-02 23:03:05