HTTP状态404-请求的资源不可用

在MyEclipse IDE中通过Struts

2框架使用Tomcat服务器时,我经常遇到问题。我正在将程序作为服务器应用程序运行,当它运行时,默认的index.jsp文件将成功打开,但该应用程序的其他所有版本均无法正常运行。尝试加载我的任何.do页面时,出现以下错误:HTTP状态404:请求的资源....不可用。以前遇到此错误时,我只是重新启动了服务器,一切都很好,但是现在我没有那么幸运了。

这是我点击运行时来自控制台的日志。

Apr 12, 2012 10:49:35 AM org.apache.catalina.core.AprLifecycleListener init

INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\bin;C:\Program Files\MyEclipse\Common\plugins\com.genuitec.eclipse.easie.tomcat.myeclipse_9.0.0.me201109141806\tomcat\bin

Apr 12, 2012 10:49:35 AM org.apache.coyote.http11.Http11Protocol init

INFO: Initializing Coyote HTTP/1.1 on http-8080

Apr 12, 2012 10:49:35 AM org.apache.catalina.startup.Catalina load

INFO: Initialization processed in 285 ms

Apr 12, 2012 10:49:35 AM org.apache.catalina.core.StandardService start

INFO: Starting service Catalina

Apr 12, 2012 10:49:35 AM org.apache.catalina.core.StandardEngine start

INFO: Starting Servlet Engine: Apache Tomcat/6.0.13

Apr 12, 2012 10:49:35 AM org.apache.catalina.loader.WebappClassLoader validateJarFile

INFO: validateJarFile(C:\Documents and Settings\username\My Documents\Workspaces\.metadata\.me_tcat\webapps\project-name\WEB-INF\lib\javax.servlet-3.0.1.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class

log4j:WARN No appenders could be found for logger (com.opensymphony.xwork2.config.providers.XmlConfigurationProvider).

log4j:WARN Please initialize the log4j system properly.

Apr 12, 2012 10:49:37 AM org.apache.coyote.http11.Http11Protocol start

INFO: Starting Coyote HTTP/1.1 on http-8080

Apr 12, 2012 10:49:37 AM org.apache.jk.common.ChannelSocket init

INFO: JK: ajp13 listening on /0.0.0.0:8009

Apr 12, 2012 10:49:37 AM org.apache.jk.server.JkMain start

INFO: Jk running ID=0 time=0/16 config=null

Apr 12, 2012 10:49:37 AM org.apache.catalina.startup.Catalina start

INFO: Server startup in 1720 ms

有什么建议么?

回答:

我没有javax.servlet-3.0.1.jar在类路径中添加任何理由。由于您使用的是Eclipse来构建/运行您的应用程序,因此当您将tomcat或任何服务器作为运行时环境添加到您的项目时,这些lib依赖项将自动添加到class-

path.Simple从项目的lib文件夹中删除此jar。也可能有其他原因。

  1. javax.servlet-3.0.1.jar已添加为运行时库(在.WAR中),并且仅在构建时需要。
  2. 从WEB-INF / lib中删除jar,然后更新您的构建脚本以指向新位置。

在引用Servlet Spec 2.3第9.7.2节时说,Servlet容器(例如Tomcat)将提供J2EE规范的实现类。您的WEB-INF /

lib目录中的j2ee.jar(在我们的情况下为servlet-

api.jar?)试图提供相同的信息。具有特定于应用程序的实现是规范2.3和Tomcat所不允许的稳定性和安全性问题。

简而言之,从您的lib文件夹中删除javax.servlet-3.0.1.jar,然后让容器负责为您提供这些依赖项。

要声明容器通过maven提供的依赖关系,请将范围设置为“提供”,这是pom.xml中条目外观的示例:

    <dependency>

<groupId>javax</groupId>

<artifactId>javaee-web-api</artifactId>

<version>6.0</version>

<scope>provided</scope>

</dependency>

以上是 HTTP状态404-请求的资源不可用 的全部内容, 来源链接: utcz.com/qa/398914.html

回到顶部