开发者社区> 问答> 正文

启动失败,提示: Unknown flag 0x1000

启动时初始化失败 显示 java.lang.IllegalArgumentException: Unknown flag 0x1000 2019-10-16 14:36:21.456 [] ERROR org.springframework.web.context.ContextLoader - Context initialization failed org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/webx.xml]; nested exception is java.lang.IllegalArgumentException: Unknown flag 0x1000

环境: java -version openjdk version "11.0.4" OpenJDK Runtime Environment (build 11.0.4+11-post-Ubuntu-1ubuntu218.04.3) OpenJDK 64-Bit Server VM (build 11.0.4+11-post-Ubuntu-1ubuntu218.04.3, mixed mode, sharing)

全部log: OpenJDK 64-Bit Server VM warning: Ignoring option MaxPermSize; support was removed in 8.0 2019-10-16 14:36:18.855 [] INFO com.alibaba.otter.manager.deployer.OtterManagerLauncher - ## start the manager server. WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.dom4j.io.SAXContentHandler (file:/root/otter/manager/lib/dom4j-1.6.1.jar) to method com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser$LocatorProxy.getEncoding() WARNING: Please consider reporting this to the maintainers of org.dom4j.io.SAXContentHandler WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release 2019-10-16 14:36:21.456 [] ERROR org.springframework.web.context.ContextLoader - Context initialization failed org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/webx.xml]; nested exception is java.lang.IllegalArgumentException: Unknown flag 0x1000 at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:412) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125) ~[spring-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94) ~[spring-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131) ~[spring-context-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:527) ~[spring-context-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:441) ~[spring-context-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:383) ~[spring-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283) ~[spring-web-3.1.2.RELEASE.jar:3.1.2.RELEASE]

原提问者Github用户 aikawarazu

展开
收起
云上静思 2023-06-15 08:05:31 213 0
4 条回答
写回答
取消 提交回答
  • 切换至jdk8就正常了。

    原回答者Github用户 aikawarazu

    2023-06-16 15:22:22
    赞同 展开评论 打赏
  • 根据提供的日志,出现了一个关于 webx.xml 的解析异常,导致上下文初始化失败。异常信息显示 java.lang.IllegalArgumentException: Unknown flag 0x1000

    该异常通常与使用的 dom4j 版本不兼容有关,因为早期版本的 dom4j 在某些 JDK 版本中可能会引发这种异常。

    尝试以下解决方法来解决这个问题:

    1. 更新 dom4j 版本:将 dom4j 更新到兼容的版本,以解决该异常。您可以在项目的 Maven 或 Gradle 构建文件中,将 dom4j 的版本升级到较新的版本。例如,使用 Maven:
    <dependency>
        <groupId>dom4j</groupId>
        <artifactId>dom4j</artifactId>
        <version>2.1.3</version>
    </dependency>
    

    请根据您的具体项目配置和依赖管理工具进行更新。

    1. 检查其他依赖冲突:检查项目中其他依赖项的版本兼容性和冲突情况。某些依赖可能与 dom4j 发生冲突,导致异常出现。确保所有依赖项的版本兼容并解决冲突。

    2. 升级 JDK 版本:如果上述方法无效,可以尝试升级 JDK 版本到更高的版本。异常信息中提到了 --illegal-access=warn,这是从 JDK 9 开始引入的非法反射访问警告。升级 JDK 版本可能有助于解决异常问题。

    2023-06-15 17:40:58
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    根据你提供的信息,这个问题可能是由于在使用DOM4J库的时候出现了不兼容的问题,导致初始化失败。为了解决这个问题,你可以尝试升级DOM4J库到最新版本,或者在你的项目中使用一个与你的JDK版本兼容的版本。

    另外,你也可以检查一下你的项目中是否存在与DOM4J有冲突的库,如果有的话,可以考虑将其移除或者升级到与DOM4J兼容的版本。

    最后,你可以尝试在启动时加上-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager参数,这个参数可以让JDK使用Tomcat的日志管理器,可能会有助于诊断问题。

    2023-06-15 16:46:22
    赞同 展开评论 打赏
  • 根据您提供的日志信息,看起来是Web应用程序启动时遇到了问题。错误信息中提到了Unknown flag 0x1000,这可能是由于应用程序使用了不兼容的JDK版本或不兼容的Java选项而导致的。

    您使用的是OpenJDK 11,这应该是兼容的。但是,日志中还提到了MaxPermSize选项,这个选项在JDK 8中已经被移除了,所以可能会导致问题。您可以尝试在启动应用程序时将MaxPermSize选项删除,看看是否可以解决问题。

    另外,日志中还提到了--illegal-access=warn选项,这是由于JDK 9及以上版本引入了模块化系统,不推荐使用反射访问未导出的API。您可以考虑升级到JDK 9及以上版本,或禁用该选项。如果您使用的是Spring Framework 5及以上版本,可以通过在application.properties中添加以下属性来禁用该选项:

    spring.main.illegal-access=permit
    

    最后,日志中还提到了dom4j-1.6.1.jar,这是一个比较老的版本。如果您的应用程序依赖于该库,建议升级到最新版本,以获得更好的兼容性和性能。

    2023-06-15 08:40:50
    赞同 1 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
阿里云MaxCompute百问百答 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载