java - 严重: Allocate exception for servlet myServletName

标签 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>

它成功下载了这个依赖项,并在项目资源管理器->库->Maven 依赖项文件夹中显示了这个新的依赖项

但是,现在当我尝试访问在以下 STS Web 服务器“Tomcat v7 Server at localhost”上运行的 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)

所以我注释掉添加的依赖项并重试并再次出现相同的错误。

查看与我 checkin SVN 的上一个工作版本的差异,我发现以下文件已更改:

.classpath
.project

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

说到Java开发,我就像夏天的草一样青涩。我基本上知道这些文件中的信息用于列出依赖项以及在哪里可以找到 jar 文件,但我很困惑为什么网站现在在恢复到原始代码时会返回错误。我见过一些关于运行“Maven->更新项目”的引用,但这不起作用。我还尝试恢复到旧版本的类路径和项目文件,但仍然不起作用。

我确信这里有些事情出了问题。我什至在项目上尝试过 Sopring Tools-> Reset Internal Cache,但没有成功。

更新

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

[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] ------------------------------------------------------------------------

最佳答案

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

  1. 从 Eclipse 中删除您的项目
  2. 从文件系统中删除 .classpath.project.settings/ 文件
  3. 将项目作为现有 Maven 项目导入

一般来说,我不再在版本控制中存储 IDE 特定设置,而是让 M2E 帮我做。这减少了人们使用不同变体和版本的 Eclipse IDE(即 Rational、Spring、Oracle 或普通 Eclipse)时出现的问题

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

*.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

If you need keep coding standards as part of your project, I use the 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>

关于java - 严重: Allocate exception for servlet myServletName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28547424/

相关文章:

eclipse - 我可以让 Eclipse 识别多个 XML 文件中的 Spring bean 吗?

java - Spring 启动错误: Failed to refresh live data from process 90196

flash - 阻止 flash 访问 http 资源

audio - Web音频API-浏览器ogg与Windows Media Foundation mp3

spring-tool-suite - Spring Tools Suite、JPA 项目和 JPA 方面

Java:如何在api测试中传递rest api调用的 session id?

powershell - powershell可以用作网络编程吗?

java - 工厂方法如何返回接口(interface)和抽象类的实例?

Java SE 6u28 无法在文件中下载

java - 服务器空闲后 Hibernate Session 创建异常