3

当我尝试使用 Tomcat 7 和 Maven 部署 Spring 应用程序时出现此错误:

无法调用 Tomcat 管理器:失败 - 在上下文路径 /DocumentManagerGui 部署应用程序,但上下文无法启动


我的 Maven settings.xml文件是:

<server>  
    <id>localhost</id>  
    <username>script</username>  
    <password>script</password>  
</server>  


我的tomcat-users.xml文件是:

<role rolename="manager-gui"/>   
<role rolename="manager-script"/>  
<role rolename="manager-jmx"/>  
<role rolename="manager-status"/>  
<role rolename="admin-gui"/>  
<role rolename="admin-script"/>  

<user username="script" password="script" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/>  


我的上下文文件位于 src 目录 META-INF 文件夹中。content.xml是:

<?xml version="1.0" encoding="UTF-8"?>   
<Context  antiJARLocking="true" antiResourceLocking="true">

    <WatchedResource>WEB-INF/web.xml</WatchedResource>  

    <Loader loaderClass="org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader"  />  

    <Transaction factory="com.atomikos.icatch.jta.UserTransactionFactory" timeout="60" />  

</Context> 


我在POM文件 中的 Tomcat 插件配置是:

<plugins>  
    <plugin>  
        <groupId>org.codehaus.mojo</groupId>  
        <artifactId>tomcat-maven-plugin</artifactId>  
        <configuration>  
            <url>http://localhost:8080/manager/text</url>  
            <path>/DocumentManagerGui</path>  
            <server>localhost</server>  
            <mode>both</mode>  
        </configuration>  
    </plugin>  
</plugins> 
4

1 回答 1

3

我想要一份有关此问题的所有常见问题的列表,其中包含指向参考资料和结构良好的教程的链接。

恐怕无法评估所有可能触发tomcat显示此错误的可能问题,因为该错误太笼统并且可以触发它的常见情况太多。尝试这样做很像试图猜测是什么导致了未知应用程序崩溃,而只知道它崩溃了。

可以肯定的是,这个错误的原因是应用程序初始化阶段出现了问题。

从我的实践中,我可以想到几个通用的案例集:

  1. 应用程序初始化时抛出 PermGen Space 错误(大多数情况下这是类加载器泄漏的结果)。

  2. 在ServletContextListener实现中处理应用程序初始化时引发了一些异常(原因可能是某些框架的错误配置到未解决的类依赖项)。

  3. 别的东西。确实,可能存在某种或大量其他原因的tomcat配置错误/故障。

处理此错误的最可靠方法是检查:

  1. 您的应用程序的日志(您可以在哪里找到您的日志取决于您的 Web 应用程序中日志记录的设置方式)

  2. tomcat 的日志(通常你可以在 中找到这些{tomcat dir}/logs

...以获取有关导致错误的原因的更多信息并处理问题的根源。试图用其他方式解决这个问题,更像是与风车搏斗。

希望这会有所帮助。

于 2013-12-18T18:59:24.157 回答