【问题标题】:Server instance is not configured. Class Not Found: VersionLoggerListener未配置服务器实例。找不到类:VersionLoggerListener
【发布时间】:2020-01-09 17:08:37
【问题描述】:

我正在尝试设置 tomcat 7.0.57 以在 Eclipse Luna 中运行 Web 应用程序。我已将 webapp 添加到服务器,并尝试发布服务,但出现此错误:

Dec 05, 2014 10:07:13 AM org.apache.tomcat.util.digester.Digester startElement
SEVERE: Begin event threw exception
java.lang.ClassNotFoundException: org.apache.catalina.startup.VersionLoggerListener
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:144)
    at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1276)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
    at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1343)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2786)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
    at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1537)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:617)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:665)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)

Dec 05, 2014 10:07:13 AM org.apache.catalina.startup.Catalina load
WARNING: Catalina.start using conf/server.xml: Error at (21, 76) : org.apache.catalina.startup.VersionLoggerListener
Dec 05, 2014 10:07:13 AM org.apache.tomcat.util.digester.Digester startElement
SEVERE: Begin event threw exception
java.lang.ClassNotFoundException: org.apache.catalina.startup.VersionLoggerListener
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:144)
    at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1276)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
    at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1343)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2786)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
    at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1537)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:617)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:679)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456)

Dec 05, 2014 10:07:13 AM org.apache.catalina.startup.Catalina load
WARNING: Catalina.start using conf/server.xml: Error at (21, 76) : org.apache.catalina.startup.VersionLoggerListener
Dec 05, 2014 10:07:13 AM org.apache.catalina.startup.Catalina start
SEVERE: Cannot start server. Server instance is not configured.

VersionLoggerListener 显然有问题,因为它找不到它。我在第 21 行包含的所有 server.xml(通过我的工作区文件夹访问)是这样的:

<Listener className="org.apache.catalina.startup.VersionLoggerListener"/>

这看起来很无辜。谷歌搜索似乎没有告诉我其他人的 tomcat 包中缺少这个。

检查我的 tomcat 的“安装”,看起来等效的 server.xml 中缺少这一行

它们应该相同吗?我应该指向 Workspace 版本还是安装版本?

我不知道发生了什么,here 这暗示着它们的等价物ThreadLocalLeakPreventionListener 最近被添加了,这是某种版本冲突,我认为这里不是这种情况(?),因为两者都是版本 7 的 tomcat。

Here 看起来好像缺少一个 jar,但我不知道会发生什么,因为我确信 VersionLoggerListener 是 catalina 的核心类,应该作为安装的一部分存在。

那是什么?

【问题讨论】:

    标签: eclipse tomcat


    【解决方案1】:

    我在将 Tomcat7 切换到 Tomcat6 时遇到了同样的问题。

    由于CATALINA_BASE文件夹下的conf文件夹,您使用的tomcat版本与当前版本不同。

    在 Tomcat 7 中,您会在 server.xml 中找到 VersionLoggerListener

    要启动tomcat,只需将指向CATALINA_BASE 的新位置的文件夹更改为conf 文件夹或删除conf 文件夹并将其替换为您当前的tomcat conf。

    对于 Eclipse,服务器文件夹:.metadata\.plugins\org.eclipse.wst.server.core\tmp0\conf

    【讨论】:

      【解决方案2】:

      我有两个不同版本的 Tomcat。我删除了服务器(使用服务器视图),然后重新添加它指向安装。

      【讨论】:

      • 删除.metadata\.plugins\org.eclipse.wst.server.core 中的所有 tmp 文件夹@ tomcat 将在从服务器视图发布时创建这些文件夹所以从新服务器上,这些文件夹被覆盖并包含来自两个 tomcat 的文件,
      【解决方案3】:

      我使用的是 Tomcat 7,然后我将 Tomcat 6 安装在不同的文件夹中,并尝试在 eclipse 中的不同工作站中运行这两个 Tomcat 版本。

      不知何故,Tomcat 7 没有在 Eclipse 控制台中声明相同的错误。

      我从 Eclipse 中删除了 Tomcat 7 并重置了 Tomcat 7 服务器。

      此解决方法解决了问题。

      【讨论】:

        【解决方案4】:

        如果您在 Tomcat 安装之间复制一些文件,也会发生此错误。

        例如如果将7.0.57的/lib文件夹中的文件复制到7.0.99,请注意根据tomcat版本重新安装库。

        【讨论】:

          猜你喜欢
          • 2013-05-31
          • 1970-01-01
          • 2016-11-08
          • 1970-01-01
          • 1970-01-01
          • 2018-01-17
          • 1970-01-01
          • 2019-01-18
          • 1970-01-01
          相关资源
          最近更新 更多