You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tomcat7部署Spring应用遇server元素缺失config-file属性错误

问题描述

我是XML新手,正在Tomcat7上部署Spring应用。启动Tomcat7服务器时出现错误:Attribute 'config-file' is missing from element 'server',以下是我的mbean-servers.xml文件内容:

<?xml version="1.0" encoding="UTF-8" ?>
<!--<!DOCTYPE servers SYSTEM "mbean-servers.dtd"> -->
                                        
<servers xmlns="http://www.appdynamics.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.appdynamics.com mbean-servers.xsd">
<server mbean-server-name="WebSphere"
        mbean-name-pattern="WebSphere:*,type=Server,j2eeType=J2EEServer"
        version-attribute="platformVersion"
        version-startsWith="7"/>
<server mbean-server-name="WebSphere"
        mbean-name-pattern="WebSphere:*,type=Server,j2eeType=J2EEServer"
        version-attribute="platformVersion"
        version-startsWith="6"/>
<server mbean-server-name="JBoss_4"
        mbean-name-pattern="jboss.management.local:j2eeType=J2EEServer,name=Local"
        version-attribute="serverVersion"
        version-startsWith="4"/>
<server mbean-server-name="JBoss_5"
        mbean-name-pattern="jboss.management.local:j2eeType=J2EEServer,name=Local"
        version-attribute="serverVersion"
        version-startsWith="5"/>
<server mbean-server-name="JBoss_6"
        mbean-name-pattern="jboss.management.local:j2eeType=J2EEServer,name=Local"
        version-attribute="serverVersion"
        version-startsWith="6"/>
<server mbean-server-name="Tomcat_5.5"
        mbean-name-pattern="Catalina:type=Server"
        version-attribute="serverInfo"
        version-startsWith="Apache Tomcat/5.5"/>
<server mbean-server-name="Tomcat_6.0"
        mbean-name-pattern="Catalina:type=Server"
        version-attribute="serverInfo"
        version-startsWith="Apache Tomcat/6.0"/>
<server mbean-server-name="Tomcat_7"
        mbean-name-pattern="Catalina:type=Server"
        version-attribute="serverInfo"
        version-startsWith="Apache Tomcat/7"/>
<server mbean-server-name="Sun GlassFish_2.1"
        mbean-name-pattern="com.sun.appserv:j2eeType=J2EEServer,name=server,category=runtime"
        version-attribute="serverVersion"
        version-startsWith="Sun GlassFish Enterprise Server v2.1"/>
<server mbean-server-name="WebLogic_10"
        mbean-server-lookup-string="java:comp/jmx/runtime"
        mbean-name-pattern="com.bea:*,Type=ServerRuntime"
        version-attribute="WeblogicVersion"
        version-startsWith="WebLogic Server 10"/>
<server mbean-server-name="WebLogic_9"
        mbean-server-lookup-string="java:comp/jmx/runtime"
        mbean-name-pattern="com.bea:*,Type=ServerRuntime"
        version-attribute="WeblogicVersion"
        version-startsWith="WebLogic Server 9"/>
<server mbean-server-name="ActiveMQ" mbean-name-pattern="org.apache.activemq:*"/>
<server mbean-server-name="HornetQ" mbean-name-pattern="org.hornetq:*"/>
<server mbean-server-name="Apache Solr" mbean-name-pattern="solr:*"/>
<server mbean-server-name="Apache Cassandra 0.7.0" mbean-name-pattern="org.apache.cassandra.net:*"/>
<server mbean-server-name="Apache Cassandra 0.7.0" mbean-name-pattern="org.apache.cassandra.db:*"/>
<server mbean-server-name="Apache Cassandra 0.7.0" mbean-name-pattern="org.apache.cassandra.request:*"/>
<server mbean-server-name="Apache Cassandra 0.7.0" mbean-name-pattern="org.apache.cassandra.internal:*"/>
<server mbean-server-name="Oracle Coherence 3.7.1"
        mbean-name-pattern="Coherence:type=Cluster"
        version-attribute="Version"
        version-startsWith="3.7.1"/>
<!-- If you are using Platform MBean server to report activemq metrics then you may uncomment the following line.
-->
<!--
<server mbean-server-name="Platform" mbean-name-pattern="org.apache.activemq:*" config-file="servers\activemq-5.3.2-jmx-config.xml" />
-->

<!-- If your app publishes custom jmx metrics to platform jmx server then  you may modify the platform-jmx-config.xml
and update the mbean-name-pattern in the following line to start recording your metrics by appdynamics agent
-->

<!--
<server mbean-server-name="Platform" mbean-name-pattern="com.foo.myjmx:*" config-file="servers\platform-jmx-config.xml" />
-->
</servers>
解决方案

这个错误是因为AppDynamics的mbean-servers.xsd约束文件要求所有<server>元素必须包含config-file属性,而你配置文件里的大部分<server>节点都缺失了该属性。

可按以下步骤解决:

  1. 补充必填属性:给每个<server>标签添加config-file属性,参考注释里的示例配置。比如针对Tomcat7的节点,修改后如下:
    <server mbean-server-name="Tomcat_7"
            mbean-name-pattern="Catalina:type=Server"
            version-attribute="serverInfo"
            version-startsWith="Apache Tomcat/7"
            config-file="servers/tomcat7-jmx-config.xml" />
    
    注意要确保指定路径下的配置文件真实存在,或根据实际环境调整路径。
  2. 调整xsd约束(可选):打开mbean-servers.xsd文件,确认config-file属性是否被标记为必填。如果业务上不需要该属性,可将其use属性从required改为optional,但这种修改可能引发兼容性问题,不建议优先采用。
  3. 版本兼容调整:如果是AppDynamics版本过高导致约束变严格,可尝试切换到与Tomcat7兼容的旧版AppDynamics配置文件。

内容的提问来源于stack exchange,提问作者Janardhan Reddy Boyalla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 20:27:07