4

我得到以下 Tomcat 错误:

Sep 09, 2012 3:27:48 PM org.apache.catalina.core.AprLifecycleListener init
Information: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Products\jdk1.7.0_03\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Products/jdk1.7.0_03/jre/bin/client;C:/Products/jdk1.7.0_03/jre/bin;C:/Products/jdk1.7.0_03/jre/lib/i386;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Products\jdk1.7.0_03\jre\bin;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\Products\eclipse32;;.
Sep 09, 2012 3:27:48 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
Warnung: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:NAR_JDBC_DBO' did not find a matching property.
Sep 09, 2012 3:27:49 PM org.apache.coyote.AbstractProtocol init
Information: Initializing ProtocolHandler ["http-bio-80"]
Sep 09, 2012 3:27:49 PM org.apache.coyote.AbstractProtocol init
Information: Initializing ProtocolHandler ["ajp-bio-8009"]
Sep 09, 2012 3:27:49 PM org.apache.catalina.startup.Catalina load
Information: Initialization processed in 1359 ms
Sep 09, 2012 3:27:49 PM org.apache.catalina.core.StandardService startInternal
Information: Starting service Catalina
Sep 09, 2012 3:27:49 PM org.apache.catalina.core.StandardEngine startInternal
Information: Starting Servlet Engine: Apache Tomcat/7.0.27
Sep 09, 2012 3:27:49 PM org.apache.catalina.startup.TaglibUriRule body
Information: TLD skipped. URI: http://struts.apache.org/tags-html is already defined
Sep 09, 2012 3:27:49 PM org.apache.catalina.startup.TaglibUriRule body
Information: TLD skipped. URI: http://struts.apache.org/tags-bean is already defined
Sep 09, 2012 3:27:49 PM org.apache.catalina.startup.TaglibUriRule body
Information: TLD skipped. URI: http://struts.apache.org/tags-nested is already defined
Sep 09, 2012 3:27:49 PM org.apache.catalina.startup.TaglibUriRule body
Information: TLD skipped. URI: http://struts.apache.org/tags-logic is already defined
Sep 09, 2012 3:27:49 PM org.apache.catalina.core.ApplicationContext log
Information: Marking servlet action as unavailable
Sep 09, 2012 3:27:49 PM org.apache.catalina.core.StandardContext loadOnStartup
Schwerwiegend: Servlet /NAR_JDBC_DBO threw load() exception
java.lang.ClassNotFoundException: org.apache.struts.action.ActionServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:525)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:507)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:124)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1136)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5015)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5302)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)

Sep 09, 2012 3:27:49 PM org.apache.coyote.AbstractProtocol start
Information: Starting ProtocolHandler ["http-bio-80"]
Sep 09, 2012 3:27:49 PM org.apache.coyote.AbstractProtocol start
Information: Starting ProtocolHandler ["ajp-bio-8009"]
Sep 09, 2012 3:27:49 PM org.apache.catalina.startup.Catalina start
Information: Server startup in 725 ms

这是我的 web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.5"
 xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 <display-name>NAR_JDBC_DBO</display-name>
 <servlet>
  <servlet-name>action</servlet-name>
  <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
  <init-param>
   <param-name>config</param-name>
   <param-value>/WEB-INF/struts-config.xml</param-value>
  </init-param>
  <init-param>
   <param-name>validate</param-name>
   <param-value>true</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
  <servlet-name>action</servlet-name>
  <url-pattern>*.do</url-pattern>
 </servlet-mapping>
 <welcome-file-list>
  <welcome-file>index.html</welcome-file>
  <welcome-file>index.htm</welcome-file>
  <welcome-file>index.jsp</welcome-file>
  <welcome-file>default.html</welcome-file>
  <welcome-file>default.htm</welcome-file>
  <welcome-file>default.jsp</welcome-file>
 </welcome-file-list>
 <jsp-config>
  <taglib>
   <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
   <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
  </taglib>
  <taglib>
   <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
   <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
  </taglib>
  <taglib>
   <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
   <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
  </taglib>
  <taglib>
   <taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
   <taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
  </taglib>
 </jsp-config>
</web-app>

显然,来自 org.apache.struts.action.ActionServlet 的 Servlet Name 'Action' 存在问题。Unfurtunatley 我不知道我做错了什么。你有想法吗?提前很多。奥利

4

9 回答 9

13

发生此错误是因为您的 servlet-core jar 不在运行时类路径中。如果您使用的是maven,

  1. 打开您的 EAR/web 项目属性
  2. 单击“部署程序集”
  3. 点击“添加...”
  4. 选择“Java 构建路径条目”
  5. 点击“下一步”
  6. 选择“Maven依赖项”
  7. 点击“完成”

如果不是 maven,请确保放置 jar 的 lib 文件夹位于“部署程序集”上。

于 2013-04-03T06:23:02.657 回答
2

我认为您应该将 jar 文件保存到 /WEB_INF/Lib 文件夹中,这对您有用。

于 2013-02-12T05:22:11.720 回答
1

我在使用 Tomcat 7 时遇到了同样的错误。我找到了解决方案。根本原因是struts jar 版本或jar 配置。Previsouly 我使用 struts.jar,现在我添加了适用于 Tomcat 7 的 struts-core-1.3.10.jar,并且 servlet-api jar 应该可用,并确保 jar 配置是否正确完成。最好删除当前项目和重新开始。

于 2013-07-05T05:31:08.957 回答
1

我们需要添加一个额外的 jar:struts-extras-1.3.9.jarWEB/lib. 正确地说是org.apache.struts.actions.ForwardAction

于 2020-01-25T00:05:55.677 回答
0

我认为问题是由于 jar 文件,请确保 lib 文件夹中的 jar 文件。如果您使用的是 eclipse,则将所有 jar 文件复制到 lib 文件夹而不是配置构建路径

于 2012-09-27T07:43:33.383 回答
0

为避免此类问题,请将所有 struts jar 放在 web 应用程序的 lib 文件夹中。这将解决问题

于 2015-01-01T21:38:29.500 回答
0

这个问题是由于缺少罐子而已......将所有这些罐子放入 /WEB-INF/lib 文件夹中......

  1. antlr-2.7.2.jar
  2. commons-beanutils-1.8.0.jar
  3. commons-chain-1.2.jar
  4. commons-digester-1.8.jar
  5. commons-logging-1.0.4.jar
  6. commons-validator-1.3.1.jar
  7. oro-2.0.8.jar
  8. struts-core-1.3.10.jar
  9. struts-taglib-1.3.10.jar

如果我们只使用 struts-core.jar,那么我们将面临这个问题......因为还需要所有其他 jars。

于 2014-10-02T07:11:30.697 回答
0

我有同样的问题。虽然我将 struts 库添加到项目 Build Path 并标记为导出,但 Eclipse 并没有在 WEB-INF/lib 中包含任何内容。与 Vivek Kothari 所说的非常相似,您可以让 Eclipse 添加它们。但如果您已经下载了 jar 文件并添加到项目构建路径(可能作为用户库),则可以在步骤 6 中选择您的库。

于 2013-09-30T00:57:46.963 回答
0

org.apache.struts.actions.ActionServlet 不是 org.apache.struts.action.ActionServlet

于 2015-08-14T21:01:31.037 回答