Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取java.lang.VerifyError:在eclipse中启动tomcat 8服务器时,类waffle.apache.MixedAuthenticator会覆盖最终的方法启动。()V_Java - Fatal编程技术网

获取java.lang.VerifyError:在eclipse中启动tomcat 8服务器时,类waffle.apache.MixedAuthenticator会覆盖最终的方法启动。()V

获取java.lang.VerifyError:在eclipse中启动tomcat 8服务器时,类waffle.apache.MixedAuthenticator会覆盖最终的方法启动。()V,java,Java,我试图从eclipse启动Tomcat8服务器 SEVERE: Begin event threw error java.lang.VerifyError: class waffle.apache.MixedAuthenticator overrides final method start.()V at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(C

我试图从eclipse启动Tomcat8服务器

SEVERE: Begin event threw error
java.lang.VerifyError: class waffle.apache.MixedAuthenticator overrides final method start.()V
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    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:116)
    at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1178)
    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:1451)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:551)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:599)
    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:497)
    at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:310)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484)

我已经在tomcat lib文件夹中复制了华夫格jna jar。我从系统中Tomcat6安装的lib文件夹复制了这个jar。这是版本问题吗?请帮我找出原因。

验证错误的原因是您更改了新类的定义,但旧类是使用该类的旧版本编译的

为了避免验证错误,必须使用相同版本的Java编译所有类。此外,一旦对类进行了更改,请确保从头开始重新编译项目。最后,如果您的应用程序使用了外部库,请验证您是否使用了每个库的适当版本,当然,请查阅相应的javadocs,以确保所有内容都是正确的

需要检查您正在编译的类在应用程序的其他地方(可能在另一个jar中)的类路径中不存在吗


此外,需要通过stacktrace检查源文件(utf-8?)的字符编码是否正确?

验证错误的原因是您更改了新类的定义,但旧类是使用旧版本的类编译的

为了避免验证错误,必须使用相同版本的Java编译所有类。此外,一旦对类进行了更改,请确保从头开始重新编译项目。最后,如果您的应用程序使用了外部库,请验证您是否使用了每个库的适当版本,当然,请查阅相应的javadocs,以确保所有内容都是正确的

需要检查您正在编译的类在应用程序的其他地方(可能在另一个jar中)的类路径中不存在吗


另外,需要通过stacktrace检查源文件(utf-8)的字符编码是否正确?

是的,您有版本问题

验证器是JVM的一部分,它在类加载时对类运行正确性检查,其中一项检查是类不能重写最终方法

在这种情况下,
MixedAuthenticator
的某个超类定义了一个
void start()
方法,该方法在编译
MixedAuthenticator
所依据的版本中不是最终的,但在运行时的版本中是最终的。大概是更新了
MixedAuthenticator
以不覆盖该方法,或者更新了超类以使该方法成为非最终方法。您需要匹配
MixedAuthenticator
的版本以及此处出现问题的超类


请注意,像这样的问题是最好在项目中尽可能地打包库JAR而不是使用容器全局类路径的原因之一。

是的,您有一个版本问题

验证器是JVM的一部分,它在类加载时对类运行正确性检查,其中一项检查是类不能重写最终方法

在这种情况下,
MixedAuthenticator
的某个超类定义了一个
void start()
方法,该方法在编译
MixedAuthenticator
所依据的版本中不是最终的,但在运行时的版本中是最终的。大概是更新了
MixedAuthenticator
以不覆盖该方法,或者更新了超类以使该方法成为非最终方法。您需要匹配
MixedAuthenticator
的版本以及此处出现问题的超类


请注意,类似这样的问题是最好尽可能将库JAR打包到项目中,而不是使用容器全局类路径的原因之一。

使用try/catch包装错误源,以获取更多信息。是,这是一个版本问题。请使用try/catch包装错误源,以获取可能的更多信息。是的,这是一个版本问题。与Java版本无关。它是关于tomcat提供的catalina库版本,而不是Java版本。它是关于tomcat提供的catalina库版本的。