SEVERE:为servlet myServletName分配异常

时间:2015-02-16 17:52:49

标签: java web spring-tool-suite

使用Spring Tool Suite 3.6.3,我将以下内容添加到我的Maven Web项目的POM.XML中。

<dependency>
    <groupId>com.MyCompany.sei</groupId>
    <artifactId>MyCompany-archetype-war</artifactId>
    <version>1.0.2-RELEASE</version>
</dependency>

它成功下载了这个依赖项,并在Project Explorer-&gt; Libraries-&gt; Maven Dependencies文件夹中显示了这个新依赖项

但是,现在当我尝试访问在以下STS Web服务器“localhost上的Tomcat v7服务器”上运行的HelloWorld Web应用程序中的一个测试jsp页面时,我收到以下错误而没有其他任何更改。:

Feb 16, 2015 12:25:28 PM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet fitTrackerServlet as unavailable
Feb 16, 2015 12:25:28 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Allocate exception for servlet myServletName
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:506)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:488)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:115)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1148)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:864)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:134)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)

所以我注释掉添加的依赖项并再次尝试再次获得相同的错误。

查看我在SVN中检查的最后一个工作版本的差异,我看到以下文件已更改:

.classpath
.project

当我将新版本与旧版本进行比较时,它们看起来完全相同,只是对buildCommand和classpathentry节点进行了一些改组。

在Java开发方面,我像夏草一样绿。我在基本级别知道这些文件中的信息用于列出依赖项以及在哪里查找jar文件,但我很困惑为什么网站现在在还原到原始代码时返回错误。我已经看到一些运行“Maven-&gt; Update Project”的引用,但这不起作用。我也试图恢复到旧版本的类路径和项目文件,但它仍然不起作用。

我确信这里的事情已经摆脱不了。我甚至尝试过Sopring Tools-&gt;在没有运气的情况下重置项目的内部缓存。

更新

根据请求,这是我的依赖树。谢谢!

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building FitnessTracker Maven Webapp 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ FitnessTracker ---
[INFO] com.cigna:FitnessTracker:war:0.0.1-SNAPSHOT
[INFO] +- junit:junit:jar:3.8.1:test
[INFO] +- org.springframework:spring-webmvc:jar:3.2.0.RELEASE:compile
[INFO] |  +- org.springframework:spring-context:jar:3.2.0.RELEASE:compile
[INFO] |  |  \- org.springframework:spring-aop:jar:3.2.0.RELEASE:compile
[INFO] |  +- org.springframework:spring-core:jar:3.2.0.RELEASE:compile
[INFO] |  |  \- commons-logging:commons-logging:jar:1.1.1:compile
[INFO] |  +- org.springframework:spring-web:jar:3.2.0.RELEASE:compile
[INFO] |  |  \- aopalliance:aopalliance:jar:1.0:compile
[INFO] |  +- org.springframework:spring-expression:jar:3.2.0.RELEASE:compile
[INFO] |  \- org.springframework:spring-beans:jar:3.2.0.RELEASE:compile
[INFO] +- javax.servlet:servlet-api:jar:2.5:provided
[INFO] \- javax.servlet:jstl:jar:1.2:provided
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.792 s
[INFO] Finished at: 2015-02-16T13:58:30-05:00
[INFO] Final Memory: 12M/149M
[INFO] ------------------------------------------------------------------------

1 个答案:

答案 0 :(得分:0)

尝试让M2E重建您的Eclipse项目配置文件。

  1. 从Eclipse中删除您的项目
  2. 从文件系统中删除.classpath.project.settings/文件
  3. 将项目导入为现有Maven项目
  4. 通常我不再将IDE特定设置存储在版本控制中,让M2E为我做。当人们使用Eclipse IDE的不同变体和版本(即Rational,Spring,Oracle或普通Eclipse)时,这减少了问题

    我在Mac和Windows平台上使用IntelliJ和Eclipse的旧项目使用以下.gitignore文件。

    *.iml
    .DS_Store
    .checkstyle
    .classpath
    .fbExcludeFilterFile
    .idea
    .metadata
    .pmd
    .pmdruleset.xml
    .project
    .settings/
    artifacts.jar
    bin
    derby.log
    logs.zip
    pom.xml.releaseBackup
    release.properties
    target/
    thumbs.db
    

    如果您需要将编码标准作为项目的一部分,我使用m2e-codestyle-maven-plugin

    <plugin>
      <groupId>net.trajano.mojo</groupId>
      <artifactId>m2e-codestyle-maven-plugin</artifactId>
      <version>1.1.0</version>
      <executions>
        <execution>
          <goals>
            <goal>configure</goal>
          </goals>
          <configuration>
            <codeStyleBaseUrl>codestyle</codeStyleBaseUrl>
          </configuration>
        </execution>
      </executions>
      <dependencies>
        <dependency>
          <groupId>net.trajano</groupId>
          <artifactId>coding-standards</artifactId>
          <version>2.0.0</version>
        </dependency>
      </dependencies>
    </plugin>